ios - 如何在 iOS 中为暗模式更改设置动画?
问题描述
用户可以在应用设置的一个部分切换主题,如下所示。
这是通过更改来完成的window.overrideUserInterfaceStyle
。
虽然它按预期工作,但更改根本没有动画。整个应用程序会立即转到所选样式,而不是 iOS 设置应用程序中的平滑更改。
简单地把作业放在里面是completion
行不通的UIView.animate(withDuration duration: TimeInterval, animations: @escaping () -> Void, completion: ((Bool) -> Void)? = nil)
。
解决方案
有一种简单的方法可以使用动画更改应用程序暗模式主题
if let window = UIApplication.shared.keyWindow {
UIView.transition (with: window, duration: 0.3, options: .transitionCrossDissolve, animations: {
window.overrideUserInterfaceStyle = .dark //.light or .unspecified
}, completion: nil)
}
推荐阅读
- vb.net - 如何创建一个变量来跟踪我在 PictureBox 中设置为“图像”属性的图像?
- python - 如何仅在满足一个条件并从数据框中的单元格中删除值而不是行本身时才查找字符串?
- css - 如何递归批量转换整个项目中的 CSS 单元?
- python - 删除某些字符内的字符串
- angular - 如何在 Angular 的 observable 中返回可选值?
- c - while 中的动态内存分配
- android - IntelliJ IDEA 数据库插件中缺少“Android SQLite”项目
- c# - 使用 XMLSerializer 将对象序列化为 SOAP 编码的 XML 流
- jquery - 单击按钮转到下一步我想能够获取表格每一行的单元格1和单元格2的文本值并将它们都存储在json列表对象中
- html - 如何使需要的元素(在 html 中)不需要出现(在 css 中)