iOS 正确删除table view cell方式

1,113 阅读1分钟

删除table view cell方式

主要有两种方式:

  • table view刷新
  • 直接删除table view cell

1、全量刷新

第一步 先remove数据源。 第二部 reloadData一下。

2、直接设置对应cell的数据源的高度为0,然后刷新

调用reloadData全量刷新table view。
调用beginUpdatesendUpdates只刷高度。

3、差量刷新cell,隐藏对应cell

- (void)reloadRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

注意:如果我们列表里边只有一个特定的cell,并且不希望生成新的cell时,需要慎用次方法刷新。

4、直接删除cell

- (void)deleteRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

注意:如果有删有插入行

1、必须放在beginUpdatesendUpdates之间

2、table view 总是先删后插入行,所以我们在对数据源的数组操作的时候,应该是先删后插入

PS:一般当tableview需要同时执行多个动画时,才会用到beginUpdates函数,它的本质就是建立了CATransaction这个事务。