一、可視化編輯-XIB
做UI的自然要有可視化編程,有拖拽控件的便利方法,現在開始學習xib的可視化編輯
基礎概念
GUI:圖形用戶界面 (Graphical User Interface),也就是圖形顯示計算機操作用戶界面
Interface Builder(簡稱IB):是Max OS X平臺下用於設計和測試圖形用戶界面(GUI)的應用程序,代碼和IB都可以生成GUI
IB可以使開發者簡單快捷地開發出符合Mac西路操作系統的GUI。通常你只需要進行簡單的拖拽來構建GUI
IB使用Nib文件來存儲GUI資源,在需要時,Nib文件可以被快速地載入內存。
iOS下可視化編程分爲兩種方式:xib和storyBoard
在使用xib和storyBoard創建GUI時,以XML文件格式存儲在Xcode中,編譯時生成Nib的二進制文件。運行時,Nib文件被加載並創建GUI元素
xib的創建和使用
1.在新建UIKIT框架下的類時,勾選Also create XIB file選項,就會創建出和一個類關聯的xib文件
2.如果忘記勾選Also create XIB file,可以在單獨創建一個XIB文件,然後再手動將其和對應的類關聯起來
這個過程比較麻煩,還不如刪了重新建
(1)先創建一個在User Interface中的empty文件,命名隨意,最好和類相關
(2)然後給empty文件拖拽添加一個View控件
(3)然後在empty文件的file's owner的Custom Class的Class那欄填上要關聯的類的名字
(4)最後把file's owner的OutLets下的View的關聯拖到控件View上
真是麻煩
創建完成之後是初始化,xib創建的視圖控制器的初始化方式有所不同
TestXibViewController *testXibVC = [[TestXibViewController alloc]initWithNibName:@"TestXibViewController" bundle:nil];
NibName:當前控制器相關聯的Nib文件,如果寫nil,默認爲同名文件
NibBundle:當前應用程序所在的文件,nil默認爲mainBundle。
然後就可以在xib的選項卡里面幹各種事情了
二、控件的拖拽和關聯
雖然可視化方便了不少,但很多問題還需要代碼來解決
1.我們拖拽一個UILabel到View上,它和代碼沒有任何關聯
我嗎需要點擊右上角兩個圈圈的按鈕,他可以雙屏顯示,同時看到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
在註冊單元格時有所不同,要先創建nib
//XIB中註冊單元格
UINib *cellNib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil];
//註冊
[_myXibTableView registerNib:cellNib forCellReuseIdentifier:@"CELL"];
如果使用tableview自帶的cell,就用通用方法註冊即可
[_myTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"CELL"];