相关疑难解决方法(0)

如何检查iOS / iPadOS中是否启用了暗模式?

从iOS / iPadOS 13开始,提供了深色用户界面样式,类似于macOS Mojave中引入的深色模式。如何检查用户是否已启用系统范围的暗模式?

ios ios13 ipados ios-darkmode

25
推荐指数
10
解决办法
4419
查看次数

如何检测 iOS 13 中的 Light\Dark 模式变化?

某些 UI 设置无法在暗/亮模式下自动工作,因为UIColor. 例如shadow在图层中。因为我需要在明暗模式下删除和放置阴影,所以我需要在某个地方放置updateShadowIfNeeded()函数。我知道如何检测当前的模式:

func dropShadowIfNeeded() {
    switch traitCollection.userInterfaceStyle {
    case .dark: removeShadow()
    case .light: dropShadowIfNotDroppedYet()
    default: assertionFailure("Unknown userInterfaceStyle")
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我把这个函数放在 里面layoutSubviews,因为每次外观改变时它都会被调用:

override func layoutSubviews() {
    super.layoutSubviews()
    dropShadowIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)

但是这个函数被调用了很多。只有在userInterfaceStyle更改时才触发的正确功能是什么?

uikit uitraitcollection swiftui ios-darkmode

8
推荐指数
1
解决办法
7151
查看次数

标签 统计

ios-darkmode ×2

ios ×1

ios13 ×1

ipados ×1

swiftui ×1

uikit ×1

uitraitcollection ×1