您的位置:首页 > 其它

关于Xib 需要注意的地方

2016-04-01 19:45 525 查看
当你需要写一个繁琐的界面但是又是静态页面时,很可能会用到xib

【特例:创建继承于UIView的文件时,不带自动生成xib的勾选项,需要开发人员手动new一个同名的xib文件,在该xib文件右侧的class中选择相应的文件名】如图:


需要注意的几点:

(1)一个xib里的所有控件只能放到自己的@interface声明里,不能放到其他的文件中去

(2)学会合理利用init方法,加载xib时,需要loadNibName一下,放在init方法里会更好一些,方便我们后续在init方法中添加一些别的控件设置,,在controller中调用的时候只需要填写init方法即可,不需要担心它是xib或者是纯代码了,用法如下:

-(instancetype)init{

self = [super init];

if (self) {

//重点在这里:

self = [[[NSBundle mainBundle]loadNibNamed:@"JYEMainActivityPageView" owner:nil options:nil] firstObject];

//一些其他的设置都可写在这里、、需要注意的是,@""内的内容就是xib文件的名字

}

return self;

}

在cell中是这样的:

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

if (self) {

self = [[[NSBundle mainBundle]loadNibNamed:@"JYEMineCell" owner:self options:nil] lastObject];

     //一些其他设置【如果cell的内容来自Model的话,也可以定义一个model属性,在他的set方法中进行一些其他的设置】

}

return self;

}

(3)或者这样:注册一下,让你的tableview知道它要到复用池里找的哪些cell

[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([JYERecordCell class]) bundle:nil] forCellReuseIdentifier:NSStringFromClass([JYERecordCell class])];

JYERecordCell * recordCell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([JYERecordCell class])];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: