【发布时间】:2012-10-14 07:08:03
【问题描述】:
在其中一个视图中,有一个 UITableView 会经常更新。 使用“reloadRowsAtIndexPaths”以经典方式跟踪更改
-(void)refreshCells:(NSArray *)changedCells
{
NSLog(@"refreshCells %i",[changedCells count]);
[TableView beginUpdates];
[TableView reloadRowsAtIndexPaths:changedCells withRowAnimation:UITableViewRowAnimationBottom];
[TableView endUpdates];
}
问题:如何保留用户最后选择的单元格。每次更新refreshCells后单元格位置可能会改变?
【问题讨论】:
-
Afaik reloadRowsAtIndexPaths 只是为“changedCells”中的每个索引路径调用代表 cellForRowAtIndexPath,因此单元格的数量保持不变,因此索引路径保持不变。当然,如果由于某种原因您更改了 cellForRowAtIndexPath 返回它们的顺序,那么只有您可以知道所选单元格的去向^^
-
我也遇到了这个问题。我正在使用
reloadRowsAtIndexPaths:withRowAnimation:重新加载一个单元格。为什么它取消选择该单元格?这似乎是 iOS SDK 的一个错误。否则,应调用该方法:reloadAndDeselectRowsAtIndexPaths:withRowAnimation:.
标签: objective-c ios uitableview cell