1. ホーム
  2. ios

[解決済み] UITableViewはスワイプで削除できないが、Editモードでは削除できる?

2023-01-12 05:11:42

質問

アラームアプリのように、スワイプでの行削除はできないが、編集モードでは行削除ができるようなものが欲しいです。

tableView:commitEditingStyle:forRowAtIndexPath: をコメントアウトすると、スワイプでの削除ができなくなり、編集モードでもDeleteボタンがありますが、Deleteボタンを押すとどうなるのでしょうか?何が呼び出されるのでしょうか?

どのように解決するのですか?

OK、それは非常に簡単であることが判明した。これは、私がこれを解決するためにしたことです。

オブジェクトC

- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Detemine if it's in editing mode
    if (self.tableView.editing)
    {
        return UITableViewCellEditingStyleDelete;
    }

    return UITableViewCellEditingStyleNone;
}

スウィフト2

override func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {
    if tableView.editing {
         return .Delete
    }

    return .None
}

スウィフト3

override func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
    if tableView.isEditing {
        return .delete
    }

    return .none
}

を実装する必要があります。 tableView:commitEditingStyle:forRowAtIndexPath: を実装し、削除をコミットする必要があります。