はじめに
iOS13 で動作チェックをすると下記のような画面に遭遇した
iOS12 | iOS13 |
---|---|
(どちらも一番上のセルが選択状態になっています)
iOS13 の UITableViewCell
の選択時の状態がおかしい
現象
こちらどうやら iOS13 からセルの選択とハイライトの時の動作が変わったようです。
今まで選択とハイライトの時は contentView
の subView
の背景色が透明になっていましたが iOS13 からは変化しなくなったようです。(こちらは以前から告知されていたようですが知りませんでした...)
今までは下記のように選択時も View の色を保持したい場合は setHighlighted(_:animated:)
と setSelected(_:animated:)
で色を再設定するか ImageView を使うなどしないといけませんでしたが iOS13 からはそういったことをしなくてもよくなったようです。
(UILabel
の Highlighted
の色はちゃんと反映されました)
対応
contentView
の subView
の背景色が変化しなくなったので今までと同じようにするには今回の場合は UITextView
の背景色を clear にすれば今まで通りの表示になります。
UITextView
の背景色の初期設定は Xcode10 だと white, Xcode11 だと System Background Color でした。どちらの設定も最初にのせた画像のように iOS13 の場合に表示がおかしくなるので clear に変更する必要があります。 UILabel
の初期設定は Default になっており iOS12, 13 ともに問題なく表示されました。
さいごに
iOS13 と 13未満で動作が異なるので subView
の背景色の設定には気をつけましょう!!
New Features っていう表現て素敵ですね
アプリのリリースノートとかでよく見る「軽微な不具合を修正しました」とかも New Features って言えば平和になる気がします