1 IB簡介
IB(interface Builder)是蘋果提供的一個(gè)可視化的編輯工具闰集,以前是一個(gè)獨(dú)立的軟件堤魁,從XCode4以后開始集成到了Xcode中,方便程序使用返十,也稱為Xib妥泉;
2 作用
程序員可以少寫代碼,通過XIB來構(gòu)建程序的界面洞坑,以提高開發(fā)效率盲链;
3 工作原理
當(dāng)界面上所需要的控件對象的創(chuàng)建,屬性的設(shè)置迟杂,之間的關(guān)系本質(zhì)都保存在一個(gè)xml文件中刽沾,當(dāng)程序運(yùn)行時(shí),會(huì)從xml文件中讀取所有的控件的相關(guān)設(shè)置排拷,自動(dòng)創(chuàng)建出相應(yīng)的對象侧漓,并添加到父視圖上,
4 如何使用
見【Demo】-【1-XIB】
1)創(chuàng)建視圖控制器類监氢,勾選xib復(fù)選框布蔗,即同時(shí)創(chuàng)建一個(gè)配套的xib文件;
2)在程序的入口方法中浪腐,創(chuàng)建控制器對象的時(shí)候纵揍,使用initWithNibName:bundle進(jìn)行初始化;
3)在項(xiàng)目中選中xib文件议街,從右邊欄下方的對象庫中拖拽界面所需要的控件xib界面中泽谨;
4)右邊欄的檢查器中可以對控件的屬性進(jìn)行設(shè)置,以完成界面的構(gòu)建;
5 IBOutlet
IBOutlet 輸出口是一種屬性吧雹,這種屬性指向了xib中的一個(gè)對象骨杂,可以通過代碼來操作xib中的對象;
進(jìn)行原理:IBOutlet輸出口屬性其實(shí)是將xib文件中的某個(gè)對象的地址賦值給了視圖控制器類中的某個(gè)屬性雄卷,其本質(zhì)就是做了一個(gè)指針賦值的操作腊脱;
6 IBAction
IBAction是一個(gè)方法,該方法連接了xib中的一個(gè)控件的某個(gè)事件上龙亲,當(dāng)用戶觸發(fā)了該控件的這個(gè)事件是陕凹,就會(huì)調(diào)用此方法!
運(yùn)行原理:連接IBAction方法鳄炉,相當(dāng)于通過addTarget.........action........方法給xib中的控件添加了事件的響應(yīng)方法杜耙,此處的target參數(shù)傳的是該視圖控制器對象;
7 為什么IBOutlet連接的屬性是用weak修飾而不是strong拂盯?
由于視圖控制器對象已經(jīng)間接strong指向了xib中創(chuàng)建的對象佑女,所以IBOutlet屬性再次指向這些對象時(shí),使用weak而不是strong谈竿;
二 使用XIB封裝UIView
View的封裝
如果一個(gè)View的內(nèi)部子控件較多团驱,一般會(huì)考慮自定義一個(gè)View。把他內(nèi)部子控件的創(chuàng)建封裝起來空凸,不讓外界關(guān)心嚎花,外界可以傳入對應(yīng)的數(shù)據(jù)模型給view,view拿到數(shù)據(jù)模型給內(nèi)部的子控件設(shè)置對應(yīng)的數(shù)據(jù)呀洲;
XIB文件可以用來描述某一塊局部的UI界面紊选;