Xib加载

作者: amberling | 来源:发表于2016-06-13 16:14 被阅读672次

一,本质

xib本质是XML代码(在编译时Xcodexib中内容转换成代码)

注:如果一个view是从xib中加载出来的,默认widthheightxib中描述的尺寸,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绑定的类中提供快速创建的类方法

相关文章

网友评论

    本文标题:Xib加载

    本文链接:https://www.haomeiwen.com/subject/ubpydttx.html