//重用
6.0以后dequeueReusableCellWithIdentifier: forIndexPath:indexPath 取代了
dequeueReusableCellWithIdentifier 并少写了!cell代码块 但是要和register并用
[tb registerClass:[TableViewCellclass] forCellReuseIdentifier:identifier];
TableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:identifierforIndexPath:indexPath];
//不重用 浪费资源次之
NSString*iden = [NSStringstringWithFormat:@"ide%ld",(long)indexPath.row];
TableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:iden];
if(!cell) {
cell = [[TableViewCellalloc] initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:iden];
}
.m文件需初始化initWithStyle: 重写layoutSubviews
//不重用 最浪费资源 :cellForRowAtIndexPath
TableViewCell*cell = [tableView cellForRowAtIndexPath:indexPath];
if(!cell) {
cell = [[TableViewCellalloc] initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:iden];
}
//nib创建cell自适应行高 条件只限于一个label. numberOfLines = 0
[tb registerNib:[UINibnibWithNibName:@"TableViewCell"bundle:nil] forCellReuseIdentifier:identifier];
TableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:identifierforIndexPath:indexPath];
tb.rowHeight= UITableViewAutomaticDimension;
tb.estimatedRowHeight= 80;
cell.m文件无需任何操作
网友评论