【Swift】UITableViewのセルがタップされた時にタップされたセルをいじる(背景色やテキストの変更)方法

TableViewのセルがタップされたら、そのセルの背景色を変えたり、テキストを変更したりしたい場合ってありますよね。

この記事ではその方法を解説します。

実装方法

セルがタップされた時にtableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) が呼ばれるので、その中でタップされたセルを取得し、そのセルの背景色やUI部品をいじればOKです。

extension ViewController: UITableViewDelegate {

  // セルがタップされた時の処理
  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: false)

    // タップされたセルの取得
    let cell = self.tableView.cellForRow(at:indexPath)

    // セルの背景色を変更する
    cell.backgroundColor = UIColor.lightGray
  }
}

タップされたセルは self.tableView.cellForRow(at:indexPath) で取得することができます。

もしカスタムセルを使っている場合は、次のように強制的にダウンキャストしてください。

// カスタムセルをMyListCellとして定義し、使う場合
tableView.cellForRow(at:indexPath) as! MyListCell

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA