标签和文本框内的文本会在iOS 13暗黑模式下自动变为白色。

22
我的应用在 iOS 13.0 版本以下表现良好,但当我将设备升级到 iOS 13 并选择暗黑模式时,标签会自动变为白色(之前是黑色),而在浅色模式中表现良好(黑色标签仍然是黑色)。还有其他人遇到了同样的问题吗?迄今为止是否有任何解决办法?
5个回答

32

标签颜色

之前UILabel的默认颜色是黑色,但自iOS 13开始,默认值变为LabelColor,这是一个来自系统UI元素颜色的语义颜色。如果想让它始终为黑色,请将其颜色更改为black(非默认)。但请注意,背景颜色可能会相应地从白色变为黑色。

另外,您可以通过在主窗口上设置UserInterfaceStyle来完全消除暗模式

window!.overrideUserInterfaceStyle = .light

注意:在 iOS 13 之前,窗口在 AppDelegate 中,现在窗口在 SceneDelegate 中。


29
如果您使用的是System Color,则会自动在暗模式下更改。因此,您可以在应用程序中使用自定义颜色。
或者您可以在Info.plist文件中设置键User Interface Style和值Light

输入图像描述


5

这是因为您的标签文本颜色被设置为默认值。在暗模式下,文本标签的默认颜色为白色,视图的默认颜色为黑色。


5
TextField(placeholder, text: self.$value)
                .colorScheme(.light)

您应该添加colorScheme属性以避免文本字段进入暗模式。


2
将文本框的文本颜色更改为黑色(不要使用默认颜色),并使用以下代码设置占位符颜色。
yourTextField.attributedPlaceholder = NSAttributedString(string: "Password", attributes: [NSAttributedString.Key.foregroundColor: UIColor.lightGray])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接