如何在 iOS Xcode Swift Playground 上模拟黑暗模式

How to simulate dark mode on iOS Xcode Swift Playground

类似于 and ,如何在Xcode Swift 游乐场实时取景中启用暗模式?

模拟器很可能是真实设备。对于此解决方案,运行 您在 Xcode 中的模拟器。模拟器主屏幕出现后,转到模拟器上的设置菜单,在设置菜单上有一个开发人员菜单。点击开发者菜单,你会看到深色外观开关。如果您切换该栏,那么您的所有应用程序都将 运行 处于深色模式。 (如果您的应用有深色模式版本)。

您可以使用 overrideUserInterfaceStyle

在任何视图中对其进行测试

例如,您可以将此代码粘贴到 playground 中进行检查(已在 Xcode 11.3.1 中测试):

import Foundation
import PlaygroundSupport

extension UIColor {

    static var primary: UIColor {
        UIColor { trait -> UIColor in
            return trait.userInterfaceStyle == .light ? .black : .white
        }
    }

    static var secondary: UIColor {
        UIColor { trait -> UIColor in
            return trait.userInterfaceStyle == .light ? .white : .black
        }
    }
}

class DarkModeTestView: UIView {

    let label = UILabel(frame: CGRect(x: 0, y: 0, width: 375, height: 300))

    override init(frame: CGRect) {
        super.init(frame: frame)

        backgroundColor = .secondary

        label.text = "This text should be displayed in black for light mode and white for dark mode"
        label.textColor = .primary
        label.numberOfLines = 0

        addSubview(label)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

let testView = DarkModeTestView(frame: CGRect(x: 0, y: 0, width: 375, height: 300))
testView.overrideUserInterfaceStyle = .dark // Change here .light or .dark

PlaygroundPage.current.liveView = testView