iOS-個(gè)人整理21 - 可視化編輯-XIB

一、可視化編輯-XIB

做UI的自然要有可視化編程,有拖拽控件的便利方法,現(xiàn)在開始學(xué)習(xí)xib的可視化編輯
基礎(chǔ)概念

1.GUI:圖形用戶界面 (Graphical User Interface),也就是圖形顯示計(jì)算機(jī)操作用戶界面
2.Interface Builder(簡稱IB):是Max OS X平臺(tái)下用于設(shè)計(jì)和測試圖形用戶界面(GUI)的應(yīng)用程序,代碼和IB都可以生成GUI
3.IB可以使開發(fā)者簡單快捷地開發(fā)出符合Mac西路操作系統(tǒng)的GUI。通常你只需要進(jìn)行簡單的拖拽來構(gòu)建GUI
IB使用Nib文件來存儲(chǔ)GUI資源,在需要時(shí),Nib文件可以被快速地載入內(nèi)存。

iOS下可視化編程分為兩種方式:xib和storyBoard
在使用xib和storyBoard創(chuàng)建GUI時(shí),以XML文件格式存儲(chǔ)在Xcode中,編譯時(shí)生成Nib的二進(jìn)制文件。運(yùn)行時(shí),Nib文件被加載并創(chuàng)建GUI元素

xib的創(chuàng)建和使用

1.在新建UIKIT框架下的類時(shí),勾選Also create XIB file選項(xiàng),就會(huì)創(chuàng)建出和一個(gè)類關(guān)聯(lián)的xib文件

2.如果忘記勾選Also create XIB file,可以在單獨(dú)創(chuàng)建一個(gè)XIB文件,然后再手動(dòng)將其和對(duì)應(yīng)的類關(guān)聯(lián)起來

這個(gè)過程比較麻煩,還不如刪了重新建

(1)先創(chuàng)建一個(gè)在User Interface中的empty文件,命名隨意,最好和類相關(guān)
(2)然后給empty文件拖拽添加一個(gè)View控件
(3)然后在empty文件的file's owner的Custom Class的Class那欄填上要關(guān)聯(lián)的類的名字
(4)最后把file's owner的OutLets下的View的關(guān)聯(lián)拖到控件View上

真是麻煩

創(chuàng)建完成之后是初始化,xib創(chuàng)建的視圖控制器的初始化方式有所不同

TestXibViewController *testXibVC = [[TestXibViewController alloc]initWithNibName:@"TestXibViewController" bundle:nil];  

NibName:當(dāng)前控制器相關(guān)聯(lián)的Nib文件,如果寫nil,默認(rèn)為同名文件
NibBundle:當(dāng)前應(yīng)用程序所在的文件,nil默認(rèn)為mainBundle。
然后就可以在xib的選項(xiàng)卡里面干各種事情了


二、控件的拖拽和關(guān)聯(lián)

雖然可視化方便了不少,但很多問題還需要代碼來解決

1.我們拖拽一個(gè)UILabel到View上,它和代碼沒有任何關(guān)聯(lián)

我嗎需要點(diǎn)擊右上角兩個(gè)圈圈的按鈕,他可以雙屏顯示,同時(shí)看到Xib和相關(guān)類的代碼
用鼠標(biāo)右鍵按住控件Label,拖拽到.h文件的屬性聲明處



出現(xiàn)小框,這里可以設(shè)置此Label的名字,設(shè)置為xibLabel



命名完畢點(diǎn)擊connect得到了這個(gè)Label屬性的聲明

然后就可以在代碼中對(duì)這個(gè)Label進(jìn)行各種設(shè)置,而不再需要對(duì)Label進(jìn)行初始化的操作。
2.同理如果是一個(gè)Button,可以給給他命名,并且添加方法,在Connection選項(xiàng)中選OutLet就是聲明屬性,選Action就是聲明方法

聲明方法后,會(huì)自動(dòng)在.m文件中添加一個(gè)空的方法


3.再說一下代理設(shè)置

拖拽一個(gè)UITextField到View上,鼠標(biāo)右鍵按住UITextField拖向File's Owner的正方體,
彈出一個(gè)小選框,選delegate,點(diǎn)擊就講這個(gè)UITextField的代理設(shè)置為當(dāng)前的視圖控制器了

4.再補(bǔ)充一點(diǎn)

如果拖進(jìn)tableView控件,一定要記得給控件拖拽代理dataSource和delegete到所在的ViewController上

如果在xib的面板上自己添加自定義的tableViewCell
在注冊(cè)單元格時(shí)有所不同,要先創(chuàng)建nib


//XIB中注冊(cè)單元格  
    UINib *cellNib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil];  
    //注冊(cè)  
    [_myXibTableView registerNib:cellNib forCellReuseIdentifier:@"CELL"];  

如果使用tableview自帶的cell,就用通用方法注冊(cè)即可

[_myTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"CELL"];  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容