【Swift】UITableViewにデータを追加・全削除する方法

Swift で UITableView にデータを追加したり、逆にデータを全削除したい時の方法です。
特に全削除については、最初調べ方が悪かったのか、なかなか私の要望に合致するページが見つからなかったので備忘録も兼ねています。

今回参考にさせていただいた記事はこちら。

Xcode – swift4 tableViewの更新の方法 | teratail
https://teratail.com/questions/127907

 

先に全削除の方法についてです。
特定のデータだけを削除したい場合は、.deleteRows() を使って、消したい行を指定しますが、全削除の場合は、下記の2行だけで完了します。

items = []  // UITableView に表示しているデータを格納している配列
tableView.reloadData()

コードにもコメントで書きましたが、items という配列は、UITableView に表示しているデータを格納しているものを指定します。
この配列を空にしてから、.reloadData()UITableView を再読み込みします。
そうすると、配列の内容が TableView に反映され、データが全て削除できます。
修正すれば、最初のデータだけなど、特定のデータだけを削除することもできます。

 

次はデータの追加方法ですが、2種類方法があります。
なお、両方とも末尾にデータを追加する方法です。

1つ目は、上で紹介した .reloadData() を使う方法で、下記のように記述します。

items.append([追加したいデータ])
tableView.reloadData()

こちらの方がコードがシンプルで分かりやすいのでおすすめです。

2番目は、.beginUpdates().insertRows().endUpdates() を使った方法です。

items.append([追加したいデータ])
tableView.beginUpdates()
tableView.insertRows(at: [IndexPath.init(row: self.items.count-1, section: 0)], with: .automatic)
tableView.endUpdates()

ちなみに、こちらは UITableView へのデータ追加方法を調べた時に、一番最初に見つけた方法です。
TableView をアップデートの開始と終了を宣言する必要があり、その間にデータの挿入を行なっています。
…こちらもわかりにくくはないのですが、比べてしまうと、やはり 1つ目の .reloadData() を使った方法の方が分かりやすいですね。
ただ、どちらも問題なく動作したので、あとはお好みで使い分けてください。

 

以上、Swift の UITableView にデータを追加、もしくはデータの全削除を行う方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG