在editActionsForRowAt返回[]之后不调用UITableView滑动

时间:2016-12-14 21:07:47

标签: ios swift uitableview

我一直在使用editActionsForRowAt来创建内置滑动左侧功能,以显示快速访问按钮,如下所示:

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    print("Is this working?")
    //Code to create UITableViewRowAction buttons
    return [button1, button2]
} 
func tableView (_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    //I read I need this, so I have it
    return true
}
func tableView (_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    //I read I need this, so I have it
}

现在我的整张桌子,包括滑动,效果很好。直到...

我的editActionsForRowAt函数有代码,如果用户滑动扩展的单元格(默认情况下它们是50,但用户可以点击以扩展高度),则editActionsForRowAt返回[],一个空数组。我之所以这样做,是因为我不希望真正高大的细胞显示伸出的按钮。

之后,即使关闭后,滑动单元格(任何单元格)甚至都不会调用editActionsForRowAt。我通过在该函数的开头添加一个打印行进行检查,无论我在刷了一个展开的单元格并返回[]后都无法打印。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:4)

当给定的行不可编辑时,您应该从editActionsForRowAt返回false而不是从canEditRowAt返回空数组。