问题如题目所示。
场景:当前tableviewcell是由三个view拼接而成的,加在cell.contentView上。刷新的时候我只需要刷新其中一个cell的一个view里的内容。
但是执行刷新cell方法,是三个view是一起刷新的,导致数据不变的view会闪一下。
请问各位这种场景如何优化?
解决方案
首先很感谢大家的回答,今天看到还有人回复这个问题,我坐下补充
对这个问题,有一点需要更正:
1、出现刷新闪动问题的是CollectionViewCell,我当时以为tableView也会有同样的问题,所以问题里写成了tableViewCell。实时证明,我当时的场景tableView不会出现闪动问题。
解决方案:
1、针对原问题CollectionViewCell闪动,是由于CollectionView隐式动画引起的,可以这样写:
//关闭隐式动画,防止cell闪动 [UIView performWithoutAnimation:^{ [self reloadItemsAtIndexPaths:@[indexP]]; }];
更多关掉隐式动画方案:http://adad184.com/2015/11/10...
2、针对tableViewCell的刷新,可以在自定义cell写一个方法实现,但是滑动到可见范围之外再回来,状态会回复(因为走了tableView:tableViewcellForRowAtIndexPath
)。如果要保持cell的状态不改变只能通过reload方式实现,就是更新数据源。