如何取消选择UITableViewCell,即在使用didSelectRowAtIndexPath执行某些操作后取消选择?

23

我目前在didSelectRowAtIndexPath委托方法中做一些工作,并注意到当我稍后回到视图控制器时,我的行仍然保持“选定”状态。

如何在委托方法内取消选择此行?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  //do logic and ... it remains selected in the view?
}
2个回答

51
[tableView deselectRowAtIndexPath:indexPath animated:YES];

37

通常在视图控制器再次出现时,您希望取消选择行:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}

这就是 UITableViewController 隐式进行的操作,而在视图控制器再次出现后对取消选择过程进行动画处理可以向用户提供有关他们先前所选单元格的有用提示。


我认为最好使用 viewWillAppear:,这样用户就不会短暂地看到所选行。 - doctorBroctor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接