LoginSignup
2
1

More than 3 years have passed since last update.

iOS13のセルのselectedとhighlightedにつまずいた

Last updated at Posted at 2019-12-16

はじめに

iOS13 で動作チェックをすると下記のような画面に遭遇した:scream:

iOS12 iOS13
12 13

(どちらも一番上のセルが選択状態になっています)

iOS13 の UITableViewCell の選択時の状態がおかしい:bomb:

現象

こちらどうやら iOS13 からセルの選択とハイライトの時の動作が変わったようです。

iOS13リリースノート

今まで選択とハイライトの時は contentViewsubView の背景色が透明になっていましたが iOS13 からは変化しなくなったようです。(こちらは以前から告知されていたようですが知りませんでした...:see_no_evil:)

今までは下記のように選択時も View の色を保持したい場合は setHighlighted(_:animated:)setSelected(_:animated:) で色を再設定するか ImageView を使うなどしないといけませんでしたが iOS13 からはそういったことをしなくてもよくなったようです。

color

(UILabelHighlighted の色はちゃんと反映されました)

対応

contentViewsubView の背景色が変化しなくなったので今までと同じようにするには今回の場合は UITextView の背景色を clear にすれば今まで通りの表示になります。

UITextView の背景色の初期設定は Xcode10 だと white, Xcode11 だと System Background Color でした。どちらの設定も最初にのせた画像のように iOS13 の場合に表示がおかしくなるので clear に変更する必要があります。 UILabel の初期設定は Default になっており iOS12, 13 ともに問題なく表示されました。

さいごに

iOS13 と 13未満で動作が異なるので subView の背景色の設定には気をつけましょう!!

New Features っていう表現て素敵ですね:heart_eyes_cat:

アプリのリリースノートとかでよく見る「軽微な不具合を修正しました」とかも New Features って言えば平和になる気がします:innocent:

2
1
0

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
2
1