Xib加载
2016-06-13 本文已影响672人
amberling
一,本质
xib本质是XML代码(在编译时Xcode将xib中内容转换成代码)
注:如果一个view是从xib中加载出来的,默认width与height是xib中描述的尺寸,frame中(x,y)值默认为零
二、控制器中加载xib
加载方式一:
NSArray *newsArr = [[NSBundle mainBundle] loadNibNamed:@"news" owner:nil options:nil];
UIView *newsView = newsArr.firstObject;
注:
“loadNibNamed:owner:options” 方法返回值是一个NSArray,因为一个xib中可以放多个view,但一般情况我们都只放一个在xib中
加载方式二:
UINib *nib = [UINib nibWithNibName:@"news" bundle:[NSBundle mainBundle]];//[NSBundle mainBundle]作为参数时,可以传nil,切记[NSBundle mainBundle]调用其他方法时不可以为nil,用nil调用方法等于什么操作都没做
UIView *news = [[nib instantiateWithOwner:nil options:nil] firstObject];
三、使用xib加载view的注意事项
1,如果一个view是从xib加载出来的,那么xib绑定的View初始化过程中,不会执行init方法和initWithFrame方法,因此在页面中如果通过 alloc init 来初始化该view,界面会是空白
2,如果多个页面中用到该view,最好在xib绑定的类中提供快速创建的类方法