最近アプリのテーマカラーを変更する機能を実装しました。
アプリで使われている色を変更するやつですね。
数年前にも実装したことがあったのですが、UIButton や UIImageView 等、変更したいオブジェクトの tintColor をつまんねーと思いながらシコシコと作業しておりました (^ω^)
で。
今回もその実装するのかーと思ってテンサゲだったのですが、恐ろしいことに気付きました。
親View の tintColor を変更すると、
子View の tintColor も全ての変わる…
なんてこったい ( ˘ω˘ )スヤァ
ドキュメントを読まない天罰ですwww
実装方法
Storyboard を使っていたので、以下のクラスを作って、UIViewController の UIView に設定しました。
1 2 3 4 5 6 7 |
class TintColorView: UIView { override func awakeFromNib() { self.tintColor = .red } } |
これだけぇ。
まぁ UISwitch みたいに onTintColor でカラー変更するイレギュラーなやつを除きますが、UIImageView や UIProgress は反映されます。
さいごに
SwiftUI でも実装してみたい今日この頃ですが、案件としても少ないですね。
個人プロジェクトでも SwiftUI 使っていません \(^ω^\)
次は使ってみようかな…(多分使わないぱてぃーん)
コメント