我有一个
- tableView(UITableView)
- 自定义单元格:UITableViewCell!
- itemsArray:[项目]
我尝试根据 IndexPath.row 为 UITableView 中的单元格设置自定义操作。
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath)
-> [UITableViewRowAction]? {
if !(itemsArray[indexPath.row].isReadOnly) {
let editAction = UITableViewRowAction(style: .normal, title: "Edit") {
(tableViewRowAction, indexPath) in
print("Edit Item \(self.itemsArray[indexPath.row].caption)\n")
}
return [editAction]
} else {
return []
}
}
我尝试根据 IndexPath.row 为 UITableView 中的单元格设置自定义操作:
问题发生在单元格上,我希望单元格不执行任何操作(相应的项目具有 .isReadOnly = true)
我尝试在其他情况下返回 nil 和 [],并且这两种变体对于刷卡都有不相关的结果: - nil – 删除项目的操作显示 - [] – 单元格滑动一点,“取消滑动”返回,然后滑动在任何单元格中停止工作
最佳答案
我找到了解决方案:只需使用 UITableView 的 canEditRowAt 方法
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return !(items[indexPath.row].isReadOnly)
}
关于ios - 如何根据 IndexPath.row 设置自定义 UITableViewRowAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40952971/