1.创建个类方法,使外界通过该函数创建cell
+ (instancetype)cellWithTableView:(UITableView*)tableView
{
创建cell的标志
staticNSString*ID =@"contact";
//先从缓存池中取,如果缓存池中没有可循环利用的cell,先去storyboard中找到合适的cell// cell是从storyboard中创建出来的
return[tableViewdequeueReusableCellWithIdentifier:ID];
}
2.如果cell是通过storyboard或者xib创建的,就不可能会调用这个方法来初始化cell,如果cell是通过手写代码创建,才会调用这个方法来初始化cell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier
{self= [superinitWithStyle:stylereuseIdentifier:reuseIdentifier];
if(self) { }
returnself;
}
3.如果cell是通过storyboard或者xib创建的,就会调用这个方法来初始化cell,这个方法的作用类似于init方法
- (void)awakeFromNib
{// Initialization code
UIView*divider = [[UIViewalloc]init];
[self.contentViewaddSubview:divider];
}
4.在这个方法中设置子控件的frame,在其他方法设置frame没效果。
- (void)layoutSubviews
{
[superlayoutSubviews];
self.divider.frame=CGRectMake(dividerX, dividerY, dividerW, dividerH);
}
网友评论