【Swift】UIDatePicker の highlightsToday が効かないときの対処法

タイトルの通り、UIDatePicker の highlightsToday が効かずに困り果ててました。
僕の調べた限りでは、解決方法も見つからなかったので、同じ現象の人はいないのかな…と思いましたが、とりあえず残しておこうと思います。

開発環境(前提条件)

・Xcode14
・Swift5
・レイアウトは Storyboard で作成

試した方法

UIDatePicker は以下のように設定しています。

いろんなサイトで散見されている highlightsToday も記載済み。
ですが、私の場合はダークモードがオンだろうがオフだろうが関係なく効きません。


こんな状態で、真ん中の文字色が変わらず…
いくら調べてもこの方法しか出てこなくて、途方に暮れました/(^o^)\

解決方法

力技ってほどではないのですが、一応解決する方法はあります。
先ほどの画像を見ての通り、色が変わっていないのは年月日の変更をしているとき。
つまり datePickerMode == UIDatePicker.Mode.date のときです。
実はこの datePickerMode を変えるだけで解決できます。

文字色を変更する前に一度 UIDatePicker.Mode.time を設定して、色を変更してあとに UIDatePicker.Mode.date に戻すことで解決します。


なぜかは知りませんが綺麗に変わります!笑
詳しく知っている方いたらぜひ教えてください(丸投げ)

さいごに

多分 Apple のバグだと思いますが、修正するのに半日ほどかかりました。笑
もし同じ現象で困ってる方がいたら、ぜひお試しください!

コメント