Xib文件是一個輕量級的用來描述局部界面的文件,在之前的文章講解了為控制器添加Xib文件,本節主要講解一下通過xib文件表示局部界面。
<一> 創建Xib文件
Xib文件創建的時候是選擇User Interface里面的Empty模板創建,當然,如果你想創建一個新的歡迎界面,可以直接選擇Launch Screen模板,此外,Storyboard文件也是在這選擇。當你選擇Empty模板時,默認創建的文件后綴名為xib,也就是xib文件。
<二> Xib文件存放局部view
創建的xib文件里面默認為空的,可以從xCode右下角的Interface Builder中拖拽控件,默認拖拽的UIView尺寸是固定的,需要在右側邊欄進行設置,才能改變其尺寸。
在一個xib文件中可以添加多個UIView或者UIView的子類,它們是按照順序存放在數組中的,在使用的時候,可以根據索引位置從xib的數組中獲取到。
xib中添加好局部界面之后,就可以通過代碼來獲取了,步驟是先獲取到應用程序的路徑,然后得到xib文件中的數組,根據索引,取出想要的界面。
代碼
UIView *view = [[NSBundle mainBundle] loadNibNamed:@"JRTemp" owner:nil options:nil][0];
獲取xib文件中全部界面需要調用loadNibNamed:方法,第一個參數是文件名稱,第二個參數是xib文件的所有者,如果當前的xib文件是當前所在的控制器特有的,這個參數可以添加控制器,但是這樣的話在其他控制器中就不能再使用該xib中的界面。如果xib文件中的界面是可以在多個控制器中展示,那么owner就設置為nil。
<三> 封裝xib中的UIView
通過xib表示局部視圖后,可以在需要的地方通過代碼從xib文件中獲取,如果每次都直接從xib中獲取非常麻煩,通常我們會把xib中的每個小的局部界面用對應的類來進行封裝,并在這個類中提供得到該視圖對象的方法,用此來優化代碼,步驟如下。
1、先創建一個類來表示xib文件中對應的局部界面。
2、在xib中找到要關聯的view,在右側邊欄設置它的class為新創建的類,讓二者進行關聯。
3、把xib中的小控件與新增的類進行連線,讓小控件成為類的屬性,這樣在后面用起來會方便許多。
4、在新增中添加一個方法,從xib文件中獲取局部界面,代碼如下:
代碼
+(instancetype)rowViewFromFile{ return [[NSBundle mainBundle] loadNibNamed:@"JRTemp" owner:nil options:nil][0];}
5、完成以上步驟,使用局部界面的時候,就可以通過類創建對象的方式來快速的得到界面并使用,代碼如下:
代碼
RowView *rowView = [RowView rowViewFromFile];[self.view addSubview:rowView];
xib文件中的第一個小的view就被添加到了界面上,如果不設置frame,默認坐標為原點,尺寸為xib中的尺寸,在這里可以根據自己需求進行設置,效果如下:
新聞熱點
疑難解答