对于iOS 13暗模式,“文本字段”中的标签和文本会自动变为白色

时间:2019-09-23 11:23:14

标签: ios swift ios13

我的应用程序在低于13.0的iOS版本上运行良好,但是当我将设备更新到iOS 13并选择了“暗模式”时,标签会自动变为白色(较早为黑色),而在“浅色”模式(在这种情况下,情况并非如此)工作正常,黑色标签保持黑色)。

其他任何人都遇到过同样的情况,到目前为止,是否有任何解决办法?

6 个答案:

答案 0 :(得分:11)

Label Color

先前default的{​​{1}}颜色为UILabel,但是自iOS 13起,默认值为Black Color witch是语义颜色系统 UI元素颜色中的名称。要使其始终为黑色,请将颜色更改为LabelColor(不是默认值)。但是请注意,背景颜色可能会类似地从黑色变为黑色(从白色)。

还可以通过在主窗口上设置UserInterfaceStyle来完全消除黑暗模式

black

注意:该窗口位于window!.overrideUserInterfaceStyle = .light 中,直到iOS 13,现在它位于AppDelegate中。

答案 1 :(得分:10)

如果您使用的是System,则颜色会在黑暗模式下自动更改。因此您可以在“应用程序”中使用“自定义颜色”。

或者您可以在User Interface Style文件中设置密钥Light和值Info.plist

enter image description here

答案 2 :(得分:3)

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

答案 3 :(得分:1)

将textField文本颜色更改为黑色(不要保留默认颜色),然后 使用以下代码放置占位符颜色

yourTextField.attributedPlaceholder = NSAttributedString(string: "Password", attributes: [NSAttributedString.Key.foregroundColor: UIColor.lightGray])

答案 4 :(得分:1)

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

您应该添加colorScheme属性,以免文本字段处于暗模式。

答案 5 :(得分:1)

在应用的 plist 文件中将 UIUserInterfaceStyle 设置为 LightDark 以针对整个应用更改此设置

如果有人只是想恢复到旧的行为,您可以在 Info.plist 中禁用应用的暗模式支持:

<key>UIUserInterfaceStyle</key>
<string>Light</string>