私は
- tableView(UITableView)
- customCell: 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 – アイテムの削除アクションを表示します - [] – セルを少しスワイプし、「スワイプを解除」して、スワイプがどのセルでも機能しなくなります