我创建了一个新项目(Xcode 4,Master-Detail应用程序),看看我做错了什么,但我仍然遇到同样的问题.我想-reloadData在用户取消选择单元格时调用,所以这是我的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSLog(@"%s", __PRETTY_FUNCTION__);
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%s", __PRETTY_FUNCTION__);
[tableView reloadData];
}
-(NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%s", __PRETTY_FUNCTION__);
return indexPath;
}
Run Code Online (Sandbox Code Playgroud)
问题是,似乎didDeselectRowAtIndexPath并willDeselectRowAtIndexPath没有被调用.这是预期的行为吗?tableView:didDeselectRowAtIndexPath:国家的文件
告诉代理现在取消选择指定的行.
所以我猜它应该像我想的那样工作.
在其中一个视图中有一个UITableView,它经常更新.使用"reloadRowsAtIndexPaths"以经典方式跟踪更改
-(void)refreshCells:(NSArray *)changedCells
{
NSLog(@"refreshCells %i",[changedCells count]);
[TableView beginUpdates];
[TableView reloadRowsAtIndexPaths:changedCells withRowAnimation:UITableViewRowAnimationBottom];
[TableView endUpdates];
}
Run Code Online (Sandbox Code Playgroud)
问题:如何保留用户上次选择的单元格.每次更新refreshCells后,单元格位置可能会发生变化?