Time of Update: 2017-01-18
模板方法模式的核心思想就是通過把不變的行為搬移到超類,去除子類中的重複代碼來體現它的優勢。其實,模板方法模式就是提供了一個很好的代碼複用平台。首先,還是先簡單看一下定義:模板方法模式,定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。下面和給大家展示一下類的結構圖:其實,結構很簡單,只有兩層關係,核心思想就是把公用方法向上提到父類中。代碼實現起來也不複雜。下面還是老樣子,向大家簡單展示一下代碼如何?。首先是一個pr
Time of Update: 2017-01-18
改變UITableView的header、footer背景顏色改變UITableView的header、footer背景顏色,這是個很常見的問題。之前知道的一般做法是,通過實現tableView: viewForHeaderInSection:返回一個自訂的View,裡面什麼都不填,只設背景顏色。但是今天發現一個更簡潔的做法:對於iOS 6及以後的系統,實現這個新的delegate函數即可:複製代碼 代碼如下:- (void)tableView:(UITableView *)tableView
Time of Update: 2017-01-18
在沒有步入本文之前先給大家展示下效果圖,如果大家覺得很滿意請繼續往下閱讀全文。大家可以看到這個介面很簡單,其實就是UITableView的布局,但是痛點是在於如何從網上下載這些圖片,下載之後應如何進行儲存!我們一步一步進行解析,先從單線程(主線程)進行多圖片下載我們布局上的文字及圖片的地址從plist檔案中進行讀取根據結構,我們自訂一個資料模型檔案DDZApp.h#import <Foundation/Foundation.h>@interface DDZApp :
Time of Update: 2017-01-18
上篇文章給大家介紹了IOS多線程實現多圖片下載1,本文繼續給大家介紹ios多線程下載圖片。這次是用多線程進行圖片的下載與儲存,而且考慮到下載失敗,佔位圖片的問題(第一張就是下載失敗的圖片)閑話少說,上代碼吧,因為有一部分和上次的一樣,所以這裡只上傳不一樣的先給大家展示下效果圖:依舊都是在ViewController.m中1.@interface ViewController ()//所有資料@property (nonatomic,strong)NSArray
Time of Update: 2017-01-18
簡單原廠模式正如此模式的名稱一樣,簡單原廠模式基本上是所有設計模式裡最簡單的一種,類與類之間的關係一目瞭然。這次我就用很多地方經常舉的例子--計算機,來說明這個模式。首先給大家展示一下類之間的結構圖:通過這張結構圖,可以清晰的看到,加法類、減法類、乘法類、除法類繼承自運算類,簡單工廠類依賴於運算類的執行個體化來實現相應的運算功能,好的,看起來並不複雜,讓我們直接展示一下代碼吧(鑒於目前點點不支援Objective
Time of Update: 2017-01-18
一、案例示範本案例Demo示範的是一個首頁輪播的案例,支援手動輪播和自動輪播。知識點主要集中在UICollectionView和NSTimer的使用。 二、知識儲備2.1、UICollectionView橫向布局只需要設定UICollectionViewFlowLayout的scrollDirection為UICollectionViewScrollDirectionHorizontal即可。2.2、NSTimer的基本使用NSTimer的初始化:複製代碼 代碼如下: +
Time of Update: 2017-01-18
從 iOS9 起,新特性要求 App 訪問網路請求,要採用 HTTPS 協議。但是能不能判斷開發人員是否允許 HTTP 的請求,這樣就不會在發起請求時候失敗同時彈出以下資訊:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist
Time of Update: 2017-01-18
命令模式封裝一個請求或行為作為一個對象。封裝的請求比原的更加靈活,可以在對象之間傳遞,儲存,動態修改,或放入一個隊列。那麼讓我們簡要的說一下命令模式的特點。 它能比較容易地設計一個命令隊列; 在需要的情況下,可以較容易地將命令記入日誌; 允許接收請求地一方決定是否要否決請求; 可以容易地實現對請求地撤銷和重做; 由於加進新地具體命令類不影響其他的類,因此增加新的具體命令類很容易;
Time of Update: 2017-01-18
相信做App開發的同學,對於一些第三方的統計分析、錯誤收集等SDK應該都不陌生。就目前而言市面上也有許多相同功能的產品,眼花繚亂,讓人無法抉擇選哪一款SDK才是最靠譜的。那就隨便先選一款試試用吧!那麼問題來了:如果項目都快做完了結果發現這款SDK實在坑爹,不僅擴充性差,還經常讓App
Time of Update: 2017-01-18
備忘錄模式。顧名思義,備忘錄模式的初衷就是為了返回上一個狀態而設計的。從名字看起來一目瞭然,好吧,還是老樣子,先給出定義。備忘錄(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣以後就可將該對象恢複到原先儲存的狀態。定義看起來搞的很專業,其實就是儲存上一個狀態,以便日後恢複用。好比是在玩遊戲,在打大Boss之前擔心第一次打不過,先存個盤,萬一玩兒完了,還可以恢複狀態重新PK。下面給出類結構圖。Originator(原發器):記錄當前時刻的內部狀態
Time of Update: 2017-01-18
項目中很多時候會碰到這個需求,實現多張圖片的無限迴圈輪轉,以前做過,項目中幾個地方的都用到了,當時沒有封裝,幾個地方都拷貝幾乎一樣的代碼,代碼複用性不好,今天沒事封裝了一下,使用起來比較簡單。
Time of Update: 2017-01-18
本文寫了個將文字轉化為多彩圖片的功能,輸入文字將文字轉化為彩色的文字圖片,可選擇不同的字型,漸層,先看看效果。實現主要用CAGradientLayer漸層,先看看上部展示實現代碼:-(void)setupContentView{ UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 44, ScreenWidth, ScreenHight - 44 -300)]; [self.view
Time of Update: 2017-01-18
以前瀑布流的時候使用過UICollectionView,但是那時使用的是系統內建的UICollectionViewFlowLayout布局,今天看文章,看到UICollectionViewFlowLayout自訂相關的東西,於是動手寫了一個簡單圖片瀏覽的demo,熟練一些UICollectionViewFlowLayout自訂布局。#import <UIKit/UIKit.h>@interface JWCollectionViewFlowLayout :
Time of Update: 2017-01-18
最近做項目,碰到一種雙向滑動條,自己實現了一下,隨便寫一下思路,方便以後開發,避免重複寫代碼,以後粘貼就行了。封裝了一下,代碼如下:#import <UIKit/UIKit.h>typedef NSString* (^HLDoubleSlideViewSwitchStrBock)(CGFloat count);@interface HLDoubleSlideView : UIView@property(nonatomic,assign)CGFloat
Time of Update: 2017-01-18
有時候為了介面的美觀,可能需要添加第三方的字型庫。那個如何使用呢?1.將字型庫添加到項目中。2.在info.plist中添加新的一欄如下所示。如果需要添加多個字型的話,再點擊“+”,進行添加3.在target-->Build Phases-->Copy Bundle Resources中將info.plist中添加的字型添加上。
Time of Update: 2017-01-18
ableView是app開發中常用到的控制項,功能很強大,多用於資料的顯示。下面給大家介紹設定UITableView的全屏分隔線的兩種方法。具體詳情如下所示:如圖 添加如下代碼sTableView.separatorInset = UIEdgeInsetsZero;sTableView.layoutMargins = UIEdgeInsetsZero;cell.layoutMargins = UIEdgeInsetsZero;第二種方法如下圖
Time of Update: 2017-01-18
一、視圖切換 UITabBarController (分頁控制器) - 平行管理檢視 UINavigationController (導航控制器) - 壓棧出棧管理檢視 模態視窗二、UITabBarController分頁控制器 UITabBarController是為了利用 頁簽切換視圖 設計的控制器 該控制器有一個UITabBar控制項,使用者通過點擊UITabBar進行視圖切換 UITabBarController本身會不顯示任何視圖,它只是一個 容器控制器
Time of Update: 2017-01-18
一、UITableView基本介紹預設的UITableView有2種風格: UITableViewStylePlain(不分組) UITableViewStyleGrouped(分組)UITableView中的資料只有行的概念,沒有列的概念,UITableView的每行資料就是一個UITableViewCell。內建的UITableViewCell的類型選擇有:複製代碼 代碼如下:typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
Time of Update: 2017-01-18
我們都知道iOS開發中的UITextField有個placeholder屬性,placeholder可以很方便引導使用者輸入。但是UITextView卻沒有placeholder屬性。一、猥瑣的方法如何讓UITextView也有placeholder功能呢?今天給各位分享一個比較猥瑣的做法。思路大概是這樣的: 把UITextView的text當placeholder使用。 在開始編輯的代理方法裡清除placeholder。 在結束編輯的代理方法裡在設定placeholder。實現方法:1.
Time of Update: 2017-01-18
介紹:UIScrollView用於在一個小範圍裡顯示很大的內容的控制項。通過使用者平滑、手捏手勢,在這個小地區裡查看不同內容。是UITableView和UITextView的父類。它是視圖,但是比較特殊,可以看成把它看成2層的結構。上面是它的frame層,跟一般試圖一樣,是它的可見地區,下面層是contentView,可以滑動。父類UIView方法複製代碼 代碼如下:// autoresizingMask - 現在基本棄用,改用autoLayouttypedef