objective-c - iOS 自定义tableView cell重用导致内容重复 问题 如何有效解决?急急急!!
大家讲道理
大家讲道理 2017-04-18 09:57:24
[iOS讨论组]

 [self.tableView registerNib:[UINib nibWithNibName:@"NewTaskCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:NewTaskCellId];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NewTaskCell *cell = [self.tableView dequeueReusableCellWithIdentifier:NewTaskCellId forIndexPath:indexPath];
    if (!cell) {
        cell = [[NewTaskCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NewTaskCellId];
    }
    if (self.taskList.count > indexPath.row) {
        FindDisOrderInfoEntity *entity = [self.taskList objectAtIndex:indexPath.row];
        [cell setCellContentWith:entity];
    }
    return cell;
}
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(7)
迷茫

去掉 if (self.taskList.count > indexPath.row)
cell 正常赋值
当单元格增加时 刷表 或者 刷新增这一行

巴扎黑

应该先看看你的cell的个数,其次cell的理念是容器,重用只是重用容器,决定权在数据源

阿神

你都已经用registerNib方法注册了.在代理方法就不需要判断cell是否为空

高洛峰

在(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath代理方法中这样写:

NewTaskCell *cell = [self.tableView dequeueReusableCellWithIdentifier:NewTaskCellId forIndexPath:indexPath];
FindDisOrderInfoEntity *entity = [self.taskList objectAtIndex:indexPath.row];       [cell setCellContentWith:entity];
return cell;
PHP中文网

cell重用呢,重用的是之前的状态,例如cell上的UIButtonUILabel 如果在重用之前UIButton是高亮状态 UILabel上的text=@"label"那么重用之后,UIButton还是高亮状态,UILabeltext还是labelcell重用的时候会调用cellForRow方法。所以一般会在cellForRow里面重新赋值和改变状态。所以在cell里面有个默认的规则 就是如果有if 那一定要有else不然的话cell会变的乱。

PHP中文网

注册后可以不判断cell是不是空,但是判断了也没毛病,你的count为什么要判断没看懂,可能你这数组不是数据源?但是应该也不是你的问题所在,如果你"内容重复"的意思是cell上控件重复加进去了,那应该是[cell setCellContentWith:entity]; 这个里面的方法可能出问题了,有可能是你在这里创建控件并加入,复用只刷新数据就可以了,也就是只有赋值过程 没有创建控件

迷茫

tableview 显示不多 的话你不让他重用 就不会重复了 还有调用registerNib 方法后 内存中就会一直纯在CELL了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号