LoginSignup
24
21

More than 5 years have passed since last update.

TableViewCellの選択状態を管理する

Last updated at Posted at 2019-04-16

UITableViewには選択したcellにチェックマークをつける機能が標準でありますが、アイコンなどを使って独自に選択状態を表現したい場合があるかと思います。
その場合はCellのfunc setSelected(_ selected: Bool, animated: Bool)を使用します。

やりたいこと

cell選択時に左のチェックマーク(画像)を切り替える
Image from iOS (3).jpg

cell側の処理

  1. func setSelected(_ selected: Bool, animated: Bool)をoverrideする(新規でCellのファイルを作るとデフォルトでoverrideされてます)
  2. cell選択時にfunc setSelected(_ selected: Bool, animated: Bool)が呼ばれるので、selectedをみてUIを更新する
override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    self.checkImageView.image = selected ? UIImage(named: "icons8Checked")! : UIImage(named: "icons8Unchecked")!
}

指定したcellを選択済みの状態で表示する

画面遷移時にデフォルトで選択済みにしたい場合はこちら

  1. selectRow(at indexPath: IndexPath?, animated: Bool, scrollPosition: UITableView.ScrollPosition)で選択済みにしたいcellのindexPathを指定する
self.tableView.selectRow(at: IndexPath(row: 2, section: 0), animated: false, scrollPosition: .none)
24
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
21