在 iOS 13 上使用时,我已更新我的 iOS 11+ 以支持暗模式。当在设备设置中启用或禁用 UserInterfaceStyle/暗模式时,这可以正常工作。
但是,我想为用户提供仅为我的应用程序激活/停用暗模式的选项。
使用开关覆盖/切换 UserInterfaceStyle
当前应用程序窗口的大小没什么大不了的:
if #available(iOS 13.0, *) {
for window in UIApplication.shared.windows {
window.overrideUserInterfaceStyle = (uiStyleSwitch.isOn ? .dark : .light)
}
}
但是这种方法有两个缺点:
overrideUserInterfaceStyle
之后返回“使用系统设置”?已经设置好了?使用 .unspecified
似乎有效,但行为并未真正记录在案。是不是省着用?可以使用 .uspecified
解决(见评论)所以问题是:是否可以为整个应用程序动态覆盖 UserInterfaceStyle ?
我知道我可以选择
Info.plist
中的样式但这当然不能由用户更改。
最佳答案
使用 .unspecified
恢复为界面样式的系统设置。
Choose this option when you want to follow the system's interface style
至于您问题的另一部分,它可能取决于呈现的内容以及您可以访问的回调。
关于ios - 是否可以手动设置/切换每个应用程序的 UserInterfaceStyle/暗模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58344163/