用户可以在应用设置的某一部分切换主题,如下所示。
这是通过更改 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)
}
关于ios - 如何在 iOS 中为暗模式更改设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63653747/