はじめに
これは半分メモ書きのような記事です。そこまで内容は深くありませんのでご了承のほどよろしくお願いいたします。
前提内容
画像のような簡単な ToDo アプリを作成中です。タップしたらチェックマークが付き、再度タップするとチェックマークが外れる。iOS アプリ開発で入門的存在といて扱われるようなアプリです。
目標
画像のように、削除用のボタンを左にスライドさせると出現します。
タップもしくはそのまま左にスライドさせると Cell が削除されます。
やり方
方法はとてもシンプルです。ViewController.swift
の中に次の方法を追加します。
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
// 1
items.remove(at: indexPath.row)
// 2
let indexPaths = [indexPath]
tableView.deleteRows(at: indexPaths, with: .automatic)
}
items
は配列です。この items
の中に TableView
の Cell にある Walk the dog
、Brush my teeth
などの文字列やチェックマークについての情報が入っています。
説明
簡単に説明します。
まず、1 の items.remove(at: indexPath.row)
で配列からアイテムを削除します。
次に、2 の let indexPaths = [indexPath]
と tableView.deleteRows(at: indexPaths, with: .automatic)
注目する。
ここから、TableView
から対応する行を削除します。
注意
items.remove(at:)
を呼び出すと配列から取り出すだけでなく、オブジェクトへの参照がなくなるため、永久的に破棄されます。
最後に
今回は簡単なメモ投稿になります。最後まで読んでいただきありがとうございます。