加载xib2中方式
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"xib名称" owner:nil options:nil];
UINib *nib = [UINib nibWithNibName:@"xib名称" bundle:nil]; // nil 默认是mainBundle
NSArray *array = [nib instantiteWithOwer:nil object:nil];
xib的使用注意点
如果是通过代码创建的控件,初始化时一定会调用initWithFrame
如果是通过xib或者storyboard创建控件,初始化时是不会调用initWithFrame,会调用initWithCoder
如果是通过xib或者storyboard创建控件,初始化完毕后会调用awakeFromNib方法
建议在awakeFromNib中做初始化
layoutSubviews设置子控件的frame 这个也能做初始化
在layoutSubviews方法中设置子控件的frame(layoutSubviews一定要调用[super layoutSubviews] )
时间: 2024-10-11 10:43:05