Table View CellのDisclosure Indicatorの色で困った

  • 2021.05.25
136
NO IMAGE

背景

iOS13から外観モードで、ライトとダークの切り替え機能が追加されました
Appleからはそれぞれのモードでデザインを設計する事が推奨されていますが、現在では、既存アプリへの影響もあり、ダークモードを回避する方法もあります

問題

アプリのデザイン上、常に「Black Color」の背景でデザインしたい時に、Table View CellのDisclosure Indicatorの色がライトモードでは、ほぼ同色化してしまい、識別できなくなる
※アプリとしては、ライトモードオンリーにしていない
※Disclosure Indicatorの色は、"普通"には変えられない

参考(背景色がWhite Color、ライトモードでのDisclosure Indicator)

WhiteにLight Gray?なので、識別可能(いわゆる標準パターン)

ライトモード

BlackにBlackに極めて近いGrayなので、ほぼ識別できない

ダークモード

BlackにDark Gray?なので、識別可能

対応

iPhoneの設定に関係なく、対象Cellにだけ、常にダークモードを適用する

if #available(iOS 13.0, *) {
    cell.overrideUserInterfaceStyle = .dark
}

その他の方法として、UITableViewCellをこねくり回したり、Disclosure Indicatorに見せた画像を用意するなど、いくつかありますが、今回に限っては「シンプルな実装でDisclosure Indicatorを識別できるようにしたい」だったので、この方法を採用しました

背景色が「Black Color」、「ライトモード」の時にこのような状態になるという事は、「Black Color」を背景色に使うなよ
とのAppleからのメッセージ性もあるのかな?と少し感じました