为什么uitableview单元格保持突出显示?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

为什么uitableview单元格保持突出显示?我点击单元格,并可以看到它在突出显示细节视图时保持突出显示。细节视图弹出后,单元格仍然突出显示。

提问于
用户回答回答于

在你的didSelectRowAtIndexPath中,需要调用deselectRowAtIndexPath来取消选择该单元格

因此,无论你在didSelectRowAtIndexPath中做什么,都只需要调用deselectRowAtIndexPath。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
 // Do some stuff when the row is selected
 [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
用户回答回答于

最好的是viewWillAppear:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    // Unselect the selected row if any
    NSIndexPath*    selection = [self.tableView indexPathForSelectedRow];
    if (selection) {
        [self.tableView deselectRowAtIndexPath:selection animated:YES];
    }
}

这样,当你返回到控制器时,你可以看到淡出所选内容的动画。

Swift版本

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    // deselect the selected row if any
    let selectedRow: IndexPath? = tableView.indexPathForSelectedRow
    if let selectedRowNotNill = selectedRow {
        tableView.deselectRow(at: selectedRowNotNill, animated: true)
    }
}

扫码关注云+社区