ios - 如何根据 IndexPath.row 设置自定义 UITableViewRowAction?

标签 ios swift uitableview uitableviewrowaction

我有一个

  • 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/

相关文章:

ios - 截图 UIImageView 和 UILabel 然后分享

ios - XCTest:验证带有标签的 View 是否出现

ios - https 图像未显示在 UIImageView 上

ios - 是否可以在单个 plist 中发送多个命令 - 苹果 MDM 协议(protocol)

swift - 如何从具有不同结果的 Realm 数据库中查询

ios - 除了内存泄漏,什么会随着时间的推移减慢 iOS 应用程序的速度?

ios - UITableView 仅反弹底部边缘

iphone - 当UIImage不存在时如何显示UILabel

ios - TableView 未填充数据

iphone - 如何使 UITableView 上的 SwipeGestureRecognizer 响应更快?