我有下面的代码,可以在tableViewCell中进行正确的滑动操作,当用户右键滑动具有DiscussionURL的正确单元格时,它的工作正常,如果用户右键滑动没有该URL的单元格,则UITableViewRowAction返回一个空数组。好的,选择没有URL的单元格后,我将无法选择任何其他tableViewCell,甚至无法向右滑动。我知道我在这里想念什么。
请帮我弄清楚。
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let discussion = UITableViewRowAction(style: .Normal, title: "Discussion") { action, index in
self.loadTheDiscussionPageInWebViewController(indexPath.section, index: indexPath.row)
}
if let _ = self.allDatas[indexPath.section][indexPath.row].discussionUrl {
print(" BUTTON \(discussion)")
return [discussion]
} else {
print("NO BUTTON")
return []
}
}
最佳答案
不要返回空的动作数组。而是实现tableView:indexPath:
函数以仅对其中具有讨论URL的单元格返回true。这样的事情(确保在return语句下面返回Bool
):
func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return self.allDatas[indexPath.section][indexPath.row].discussionUrl
}
然后像这样调用您的
editActionsForRowAtIndexPath
:func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let discussion = UITableViewRowAction(style: .Normal, title: "Discussion") { action, index in
self.loadTheDiscussionPageInWebViewController(indexPath.section, index: indexPath.row)
return [discussion]
}
关于ios - UITableViewRowAction行为异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32931219/