[Swift3]テーブルのセルアクセサリーをタップした時の処理を実装する

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
Swift

テーブルビューを実装するときに、セルのaccessoryTypeプロパティを設定するとセルの右端に諸々のマーク(セルアクセサリー)が表示される。しかし、表示しただけでは単なる装飾になってしまう。

今回は、セルに表示したアクセサリーをタップしたときに何かしらの処理を行わせる方法を紹介する。

準備(アクセサリー付きのテーブルを表示)

まずはアクセサリー付きのテーブルを表示させる。ストーリーボードでテーブルビューを配置し、Outlet接続して以下のようなコードを書く。

テーブルビューの基本的な表示方法については以下の記事で説明している。

[Swift3]猫でもわかるUITableViewの表示の仕方

アクセサリーをタップした時の処理

通常の、セルそのものをタップした時の処理は「tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)」で定義する。

一方で、セルアクセサリーをタップした時の処理は「tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath)」で定義することができる。
どの行のセルアクセサリーをタップしたかがindexPathに格納されており、通常のセルタップ時処理と同じように書ける。

先ほどのソースに、セル及びアクセサリーをタップしたときにそれぞれ異なるアラートを表示するよう書き足してみる。

 

動かしてみると、こんな感じ。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。