我的应用程序在低于13.0的iOS版本上运行良好,但是当我将设备更新到iOS 13并选择了“暗模式”时,标签会自动变为白色(较早为黑色),而在“浅色”模式(在这种情况下,情况并非如此)工作正常,黑色标签保持黑色)。
其他任何人都遇到过同样的情况,到目前为止,是否有任何解决办法?
答案 0 :(得分:11)
先前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
。
答案 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 设置为 Light 或 Dark 以针对整个应用更改此设置
如果有人只是想恢复到旧的行为,您可以在 Info.plist
中禁用应用的暗模式支持:
<key>UIUserInterfaceStyle</key>
<string>Light</string>