iOS-個人整理21 - 可視化編輯-XIB

一、可視化編輯-XIB

做UI的自然要有可視化編程,有拖拽控件的便利方法,現在開始學習xib的可視化編輯
基礎概念

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

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

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

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

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

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

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

真是麻煩

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

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

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


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

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

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

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



出現小框,這里可以設置此Label的名字,設置為xibLabel



命名完畢點擊connect得到了這個Label屬性的聲明

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

聲明方法后,會自動在.m文件中添加一個空的方法


3.再說一下代理設置

拖拽一個UITextField到View上,鼠標右鍵按住UITextField拖向File's Owner的正方體,
彈出一個小選框,選delegate,點擊就講這個UITextField的代理設置為當前的視圖控制器了

4.再補充一點

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

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


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

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

[_myTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"CELL"];  
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容