XIB的唤醒

XIB的两种加载方式

方式一:NSArray*views = [[NSBundle mainBundle] loadNibNamed:@"Empty" owner:nil options:nil];

方式二:

UINib *nib = [UINib nibWithNibName:@"Empty" bundle:nil];

UIView *view = [[nib instantiateWithOwner:nil options:nil] lastObject];

我们在使用的时候,可以在view的.m文件里写类方法或者写对象方法来使用上述的家在方法来使用xib.

如果想在定义好的xib上添加视图,要重写 initWithCoder方法(此方法添加的xib的子控件)。但是此方法添加的视图是在xib还未被唤醒的时候添加的xib已经创建,但未唤醒,依然没展示在视图上。所以要重写唤醒xib的方法(来添加xib中创建的子控件的子控件),- (void)awakeFromNib;


如果一个view从xib中加载,就不能用alloc init 和initWithFrame来创建

如果一个xib经常被使用,应该提供快速构造的类方法

如果一个view是从xib中加载,想要在view上用代码添加一些子控件,要用initWithCoder和awakeFromNib来创建


XIB的加载原理

- (UIView)loadFromNib ->

xib的xml代码->

initWithCode转化xml的代码(拿到需要的view和属性)->

唤醒->展示到视图上

你可能感兴趣的:(XIB的唤醒)