美文网首页iOS DeveloperiOS 开发
UITableViewCell的复用原理

UITableViewCell的复用原理

作者: 凯文Kevin21 | 来源:发表于2016-08-12 12:00 被阅读71次

原理

  1. 启动程序时, 建立整屏幕的单元格内存空间;
  2. cell表格滑动时, 把滑倒屏幕之外单元格(不用的单元格)放入队列;
  3. 出现的新单元格, 则是从队列中取出(通过复用ID去识别)

直接上代码:

  /*UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

NSLog(@"第%ld段,第%ld行",indexPath.section,indexPath.row);
通过打印可知,滑动表格时会一直开辟UITableViewCell空间,大量消耗内存

  • 下面上代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:rsuseID]; if (cell ==nil) { //判断如果还没有建立复用ID, 则开辟空间并建立复用ID cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:rsuseID]; } //config cell.. cell.textLabel.text = [NSString stringWithFormat:@"%ld个",indexPath.row]; cell.backgroundColor = [UIColor whiteColor]; return cell;

实用篇:原理讲了那么多,讲点应用吧。

  1. 如果你想在所有的cell中添加一个按钮,你是应该在if中添加,还是应该在if之外添加呢?毫无疑问,应该在if中.

结论:

对于界面的定制,放在if中比较好,一个cell中只创建一次
对于数据的定制,放在if外面比较好,对于不同的cell,表示不同的内容,虽然只有12个cell,但是cell中存放的数据我可以任意的映射。
如果你得出了这个结论,那么如果在加上textField,label等其他控件你也可以搞定。
你不仅仅需要知道怎么用, 更重要的是你需要理解其中的原理。

相关文章

网友评论

    本文标题:UITableViewCell的复用原理

    本文链接:https://www.haomeiwen.com/subject/khzssttx.html