某些 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
更改时才触发的正确功能是什么?