[Swift3]テーブルのセルが網掛けのままにならないようにする

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

Swiftでテーブルビューを実装しようとすると、セルを選択した時にセルが網掛け(選択)状態のままになってしまう。

deselectRowメソッドを利用すれば、この問題を解決することができる。

セルが網掛けのままになる問題

UITableViewでテーブルを実装してアプリを動かしてみると、セルを選択した時に「選択したセルが網掛けされたままになる」という現象が起こる。

動作には特に問題はなく、セルを選択した時の処理もきちんと行われるのだが、見た目上気持ち悪いと思った人は多いのではないだろうか。

対策する

deselectRowをセル選択時の処理に組み込む

「セルが網掛けのままになる問題」は、tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)の中に1行書き足すだけで解決する。

セルの網掛けを解除したいタイミングで、UITableViewクラスのdeselectRowメソッドを呼び出す。

対策後の挙動

無事セルの網掛けが消える。

今回は別画面に遷移しているので様子は見えないが、実際はdeselectRowを行なった段階でセルの網掛けがフェードアウトしていく。
フェードアウトではなく即座に網掛けを消したい場合は、「animated:」にfalseを指定する。

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

SNSでもご購読できます。