一部の UI セットアップは、ダーク/ライト モードの変更で自動的に機能しませんUIColor。たとえばshadowレイヤーで。ダークモードとライトモードでシャドウを削除してドロップする必要があるため、updateShadowIfNeeded()機能を配置する場所が必要です。現在のモードを検出する方法を知っています:
func dropShadowIfNeeded() {
switch traitCollection.userInterfaceStyle {
case .dark: removeShadow()
case .light: dropShadowIfNotDroppedYet()
default: assertionFailure("Unknown userInterfaceStyle")
}
}
layoutSubviews外観が変わるたびに呼び出されるため、関数を の中に入れました。
override func layoutSubviews() {
super.layoutSubviews()
dropShadowIfNeeded()
}
しかし、この関数はA LOTと呼ばれています。userInterfaceStyle変更された場合にのみトリガーする適切な機能は何ですか?