所以这是我的情况:
我有一个UITableView,其中每个单元格都有一些按钮
在cellForRowAtIndexPath中我设置了行的索引路径,所以当单击a按钮时,我知道单击了哪一行。
其中一个按钮是删除按钮,按下时我会删除背景数据并从表格中删除该行。
我遇到的问题是,在删除行之后,其他行的indexPath不正确,因为其他行尚未重绘。我可以找到重绘表的唯一方法是调用重新加载但这会弄乱动画 我认为这种问题必须先解决。有没有人对如何解决这个问题有任何建议?如果有更好的方法,我可以改变设计按钮的方式。
答案 0 :(得分:9)
认为你需要使用这个......
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
答案 1 :(得分:3)
通过开始和结束这样的更新,您应该能够在没有完全重新加载的情况下重绘tableview:
[tableView beginUpdates];
[tableView endUpdates];
答案 2 :(得分:2)
调用方法:
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
答案 3 :(得分:1)
最好不要使用按钮存储indexPath。在按钮操作处理程序(它是您的单元子类或viewController中的方法)中,您可以标识该单元格,然后使用-indexPathForCell:
确定indexPath。