0xS*_*ina 5 cocoa-touch objective-c uitableview ios
我在UITableView中删除了一些行,如下所示:
[tableView deleteRowsAtIndexPaths:toDelete withRowAnimation:UITableViewRowAnimationAutomatic];
Run Code Online (Sandbox Code Playgroud)
这为删除操作添加了一个漂亮的动画.
但是,删除后我需要更新所有当前可见的行.调用
[tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
在第一次调用工作之后,但很好的动画效果消失了.有什么更好的方法呢?即,为删除操作设置动画,并更新所有当前可见的行?谢谢!
我需要这样做的原因是因为每个单元格都包含一个"复选框".我的视图控制器是复选框的委托,每个复选框都有一个与之关联的NSIndexPath.当切换复选框时,会调用委托告诉它我们切换为x索引路径.现在,如果删除某些行,则需要更新索引路径.这就是为什么我需要重新加载所有内容,以便每个复选框知道它所属的位置.
注意: 正如评论中所述,这个答案很可能行不通。如果不被接受,我就会删除它。
我不能 100% 确定这是最好的方法,但它有一些令人愉快的干净之处。我们可以reloadData在修改底层模型后包装一个常规的 UIView 动画块:
// if self.people is a mutable array
[self.people removeObjectAtIndex:13];
[UIView animateWithDuration:0.5 animations:^{
[self.tableView reloadData];
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9822 次 |
| 最近记录: |