自定義xib
storyboard和xib的區(qū)別 相同:都是通過拖拽控件的方法來創(chuàng)建界面 不同:storyboard最少描述的是一個(gè)控制器的界面,也可以描述多個(gè)控制器界面及它們的跳轉(zhuǎn)關(guān)系"龐大"
xib可以描述一個(gè)全屏view中的某一塊小界面,也可以描述一個(gè)全屏的view"緲小"
/** xib自定義視圖的步驟:
1.創(chuàng)建xib,設(shè)置xib中view的大小,拖拽好相應(yīng)的子控件,并且設(shè)置好子控件的frame及一次性屬性
2.把固定的數(shù)據(jù)也直接設(shè)置好"比如下載按鈕上的圖片和文字"
3.創(chuàng)建一個(gè)類來管理xib 作用:"1.加載xib創(chuàng)建的細(xì)節(jié) 2.把設(shè)置子控件的細(xì)節(jié)也封裝在此類"
4.管理xib的類繼承什么取決于它所管理的xib中最頂層視圖的類型,如果最頂層是UIView那創(chuàng)建的類就應(yīng)該繼承至UIview類名最好和它所管理的xib文件名稱一樣
5.給xib中最頂層視圖指定class"只有指定了class之后我們的子控件才能進(jìn)行連線"
6.把要設(shè)置數(shù)據(jù)的子控件連線到管理xib類的.m中的延展中
7.在管理xib類的.h中引入模型屬性,并且重寫模型屬性的set方法在此方法中給子控件設(shè)置數(shù)據(jù)
8.在.h中聲明一個(gè)類方法,把加載xib的細(xì)節(jié)封裝在此類中
加載xib的方法:
1.//加載xib文件"當(dāng)前還沒有實(shí)例化"
UINib*nib = [UINibnibWithNibName:@"xib文件名"bundle:nil];
//讓nib"xib"文件激活
UITbleViewCell*cell = [[nibinstantiateWithOwner:niloptions:nil]lastObject];
UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"xib文件名 owner:nil options:nil] lastObject];