前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再简单说说UITableView中Cell的复用

再简单说说UITableView中Cell的复用

作者头像
用户1451823
发布2018-09-13 15:39:02
1.1K0
发布2018-09-13 15:39:02
举报
文章被收录于专栏:DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337748

之前的一篇博客已经说过了UITableView中Cell的复用,最近有人问到了我相同的问题,因此再简单说一下。之前博客的地址:http://blog.csdn.net/u010105969/article/details/52583210

cell的复用:在我们使用了cell的复用之后系统会将移出屏幕的cell放到缓存池中进行缓存,在滑动屏幕的时候显示其他的cell的时候就会从缓存池中取出已经缓存的cell进行复用。由于缓存的cell是之前的cell所以cell上的内容会和之前的cell上的内容一致,因此我们在使用复用的cell的时候还要对其上的内容进行修改以显示当前cell的实际内容。

最近他人问到我的一个实际问题,看图:

问题:在使用cell的复用之后滑动屏幕,每个cell上的文字内容都是没有问题的,可当点击了第一个cell上正常或隐患的单选按钮之后再次上下滑动屏幕,当再回到第一个cell的时候却发现已点击的按钮成了未选中状态。这就是cell复用的问题,当第一个cell使用缓存池中复用的cell的时候文字内容进行了重新设置因此文字内容是没有问题的,可正常和隐患按钮的选中状态却没有进行重新设置,因此出现了问题。解决该问题的方法和设置文字内容的方法是一样的。每个cell的文字信息都存储在了一个数组中,每次调用

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

这个方法的时候我们都会将数组中的文字信息传递给对应的cell以让cell使用。我们也应该创建一个长度和存储文字信息相同的数组,在该数组中存储按钮的选中状态,并且在每次点击按钮的时候改变数组中某个按钮的选中状态,这样按钮的选中状态问题也就迎刃而解了。

注意:在今后的开发中如果cell上有某些控件的状态或内容是变化的我们都应该将它们的状态或内容存储下来以便在方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath中使用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年05月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档