我一直在使用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。我通过在该函数的开头添加一条打印行来进行检查,无论在滑动扩展的单元格并返回[]之后,无论执行什么操作,它都不会打印。

有想法该怎么解决这个吗?

最佳答案

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

关于ios - editActionsForRowAt返回[]后未调用UITableView滑动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41152205/

10-09 08:54