检查UITableViewCell中的取消选择

时间:2017-06-13 03:39:12

标签: ios swift uitableview uitableviewrowaction

我在Master-Detail设置的主人中有一个UITableView。用户可以通过UITableViewRowAction与单元格进行交互,或使用给定的搜索栏进行搜索。

当用户与搜索栏交互或将单元格向左滑动时,将取消选择单元格。我需要在取消选择单元格时收到通知。

我尝试了func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath),但它似乎没有回应这类情况

override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
        print("Cell Deselected")
}

这从未按照我上面给出的条件执行,但只有在选择tableView中的其他项目时才会执行,这不是我需要的

2 个答案:

答案 0 :(得分:0)

更新的回答:

当你在桌子外面选择其他响应者时,你需要抓住它。

例如,for going into edit mode

func setEditing(_ editing: Bool, animated: Bool) {
    print("Cell deselected")
}

going into the search bar,使用此委托方法:

func searchBarShouldBeginEditing(UISearchBar)
{
     print("Cell Deselected")
}

原始回答:

确保将视图控制器(或didDeselectRowAt函数所在的任何对象)设置为表视图的delegate。您可以在故事板中设置它,也可以以编程方式进行设置。

答案 1 :(得分:0)

您可以在类级别保留 SelectedIndexPath ,当用户触及表格外的任何位置时,您可以像这样调用此方法: -

tableView.deselectRow(at: SelectedIndexPath, animated: true)

您也可以通过以下方式接听电话:

func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}