Xib的加載
- 方法1
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil]
`NSBundle mainBundle`主資源包,`loadNibNamed` xib在生成資源包后會(huì)成為Nib文件
- 方法2
UINib *nib = [UINib nibWithNibName:@"xib文件名" bundle:nil];
NSArray *views = [nib instantiateWithOwner:nil options:nil];
自定義控件view的步驟
-
新建自定義控件類(lèi)
-
修改xib中view的類(lèi)名
封裝xib的加載過(guò)程
@interface XMGShopView : UIView
+ (instancetype)shopview;
@end
--------------------------
@interface XMGShopView : UIView
+ (instancetype)shopview {
return [[[NSBundle mainBundle] loadNidNamed:@"XMGShopView" owner:nil options:nil] lastObject];
}
@end
- 增加模型屬性,在模型屬性set方法中設(shè)置數(shù)據(jù)到子控件上
注意
- 一個(gè)控件有2種創(chuàng)建方式
通過(guò)代碼創(chuàng)建
初始化時(shí)一定會(huì)調(diào)用initWithFrame:方法
- 通過(guò)xib\storyboard創(chuàng)建
初始化時(shí)不會(huì)調(diào)用initWithFrame:方法,只會(huì)調(diào)用initWithCoder:方法
初始化完畢后會(huì)調(diào)用awakeFromNib方法
- 有時(shí)候希望在控件初始化時(shí)做一些初始化操作,比如添加子控件、設(shè)置基本屬性
這時(shí)需要根據(jù)控件的創(chuàng)建方式,來(lái)選擇在initWithFrame:、initWithCoder:、awakeFromNib的哪個(gè)方法中操作

