UI-Xib

Xib的加载


  • 方法1
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil]
`NSBundle mainBundle`主资源包,`loadNibNamed` xib在生成资源包后会成为Nib文件
  • 方法2
UINib *nib = [UINib nibWithNibName:@"xib文件名" bundle:nil];
NSArray *views = [nib instantiateWithOwner:nil options:nil];

自定义控件view的步骤


  • 新建自定义控件类


  • 修改xib中view的类名


  • 封装xib的加载过程

@interface XMGShopView : UIView
+ (instancetype)shopview;
@end

--------------------------

@interface XMGShopView : UIView
+ (instancetype)shopview {
    return [[[NSBundle mainBundle] loadNidNamed:@"XMGShopView" owner:nil options:nil] lastObject];
}
@end
  • 增加模型属性,在模型属性set方法中设置数据到子控件上

注意


  • 一个控件有2种创建方式
    通过代码创建
    初始化时一定会调用initWithFrame:方法
  • 通过xib\storyboard创建
    初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
    初始化完毕后会调用awakeFromNib方法
  • 有时候希望在控件初始化时做一些初始化操作,比如添加子控件、设置基本属性
    这时需要根据控件的创建方式,来选择在initWithFrame:、initWithCoder:、awakeFromNib的哪个方法中操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容