一、可視化編輯-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"];