OC中手寫代碼與xib結合實例

github代碼地址git

第一:首先說明下,何爲封裝一個本身的控件?其實簡單來講,封裝一個本身的控件就封裝一個像UIView與UIButton這類的。能夠經過代碼建立一個本身封裝的控件github

第二:控件封裝哪些東西?在這個之間,咱們來看純代碼封裝一個控件須要封裝哪些東西(純代碼封裝的實例github代碼地址);第一:你要能返回一個控件對象(即你了的控件中包括了哪些子控件);第二:重寫layoutSubViews方法,這個方法會監聽控件的大小變化,來從新定義子控件的CGRectMake;第三:模型(對模型不是很清楚的話請點這裏)控件須要的數據通常從模型中得到;至此,一個控件類對控件的畫分基本就成型了,這三塊邏輯互相獨立,耦合性較低;接下來就是xib爲咱們解決了這三塊之中的哪些?它解決了子控件的添加與子控件的CGRectMake兩塊,數據,仍然須要本身,因此,xib爲咱們省了兩件事,畢竟圖形界面比手打的要快,並且也很好維護。spa

第三:說完了控件類如何,再來講下主控件器裏好何寫了,首先:咱們仍是以UIView控件手打代碼建立爲例:.net

//手打代碼,沒有Xcode,所寫代碼能看懂就好,若有錯誤歡迎指出
UIView *view=[[UIView alloc]init];
view.fram=CGRectMake(0,0,100,100);
[self.view.addSubViews view];


//而咱們建立本身封裝的控件應如何呢
//其實就比UIView多了一步,添加模型(數據)
UIView *view=[[UIView alloc]init];//本身的控件類像這樣實例化,通常會封裝一下調用類構造方法
//添加模型
view.fram=CGRectMake(0,0,100,100);//下面兩句同樣
[self.view.addSubViews view];
//構架已說完,血肉請看github上面的代碼

第四:說一個注意點,就是使用xib的時候,獨立控件的對象要設置成你所封裝的類,否則會報錯,錯誤很常見。3d

而純代碼是沒有這樣的問題;致使問題的緣由是,xib返回實例的時候是加載xib對象的,默認是UIView.code

相關文章
相關標籤/搜索