0
私のリストにバッチ削除を実装しようとしましたが、私のコードはこのように見えます。テーブルビューの範囲外のインデックス:バッチ削除後のcanEditRowAtテーブルビューで
func deleteSelection() {
var deletedIndexPaths: [IndexPath] = []
for (index, item) in self.itemsArray.enumerated().reversed() {
if item.isSelected {
self.itemsArray.remove(at: index)
deletedIndexPaths.append(IndexPath(row: index, section: 0))
}
}
if !deletedIndexPaths.isEmpty {
self.tableView.deleteRows(at: deletedIndexPaths, with: .automatic)
}
}
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return self.itemsArray[indexPath.row].isEditable
}
私は、テーブルビュー内の範囲外のインデックスを取得:canEditRowAt はあるバッチへの適切な方法をcanEditRowAt
を実装しながら、私の現在のソリューションは、アイテムが
を除去される行を削除することであるのtableViewに削除func deleteSelection() {
self.tableView.beginUpdates()
for (index, item) in self.itemsArray.enumerated().reversed() {
if item.isSelected {
self.itemsArray.remove(at: index)
self.tableView.deleteRows(at: IndexPath(row: index, section: 0), with: .automatic)
}
}
self.tableView.endUpdates()
}
これで機能しますが、元のコードも機能しないはずですか?
どこでエラーが発生しますか?スタックトレースとコードを送信します。 –