gpt4 book ai didi

ios - 如果返回空数组,UITableView editActionsForRowAtIndexPath 将停止工作

转载 作者:技术小花猫 更新时间:2023-10-29 10:29:41 25 4
gpt4 key购买 nike

我有一个 UITableView,我为其添加了一些自定义滑出按钮。这些都按预期工作。然而,在我的表中有一种情况,其中一行可能处于没有任何滑出按钮相关的状态,因此我一直在返回一个空的操作数组,因此滑出按钮不会出现。不幸的是,一旦发生这种情况,UITableView 就会停止调用我的 editActionsForRowAtIndexPath,有效地禁用我表中所有行的滑出按钮......并且它似乎是永久性的,直到应用程序重新启动。

这是预期的行为吗?

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?
{
if mydata[indexPath.row].EditAvailable()
{
var editAction = UITableViewRowAction(style: .Default, title: "Edit", handler: editHandler)
return [editAction]
}
else
{
return []
}
}

最佳答案

我解决这个问题的方法是实现功能,

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool

在这里,如果您不希望预期的行具有滑动功能,您应该只返回 false。

所以你的代码看起来像这样

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return mydata[indexPath.row].EditAvailable()
}

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?
{
var editAction = UITableViewRowAction(style: .Default, title: "Edit", handler: editHandler)
return [editAction]
}

editActionsForRowAtIndexPath 然后只会为您指定的可编辑的那些调用。

关于ios - 如果返回空数组,UITableView editActionsForRowAtIndexPath 将停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com