iOS 13在小部件上禁用暗模式

时间:2019-10-07 08:01:05

标签: ios swift

我已成功使用p <!DOCTYPE html> {% load static %} {% load nav_tags %} ... <!-- Category Navbar --> {% category_navbar %} <!-- Category Navbar --> UIUserInterfaceStyle在应用程序上禁用了暗模式。

但是。如果我尝试对小部件执行相同操作,则小部件仍会以暗模式显示。我也尝试过使用Light在控制器中实现它。什么都没发生。

以某种方式,Google Maps Widget设法在黑暗模式下变为亮光。因此,我认为这是可能的。

有人为小部件打开了暗模式吗?

谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我试图在黑暗模式下使用亮图。下面的示例对我有用(Xcode v.10.3-Swift 5)

@IBOutlet weak var map: MKMapView!

override func viewDidLoad() {
    super.viewDidLoad()

    // using light map on dark mode
    if #available(iOS 13.0, *) {
        map.overrideUserInterfaceStyle = .light
    }
}

答案 1 :(得分:0)

我无法完全禁用小部件上的黑暗模式。我要做的是更改窗口小部件的颜色,以更好地处理UI和UX。

在小部件视图控制器中,您必须像这样处理向暗模式的更改 `     var isDarkMode = false

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
    super.willTransition(to: newCollection, with: coordinator)

    if #available(iOS 12.0, *) {
        if (newCollection.userInterfaceStyle == .dark) {
            isDarkMode = true

        } else {
            isDarkMode = false
        }
    } else {
        isDarkMode = false
    }
}

`

还请注意,isDarkMode标志必须在设备启动状态下代码中的某个位置初始化

        isDarkMode = (self.traitCollection.userInterfaceStyle == .dark)

一旦您知道自己处于黑暗模式,就可以重新设计UI使其具有您喜欢的颜色。

HTH