Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 13暗模式下文本字段内的标签和文本自动变为白色_Ios_Swift_Ios13 - Fatal编程技术网

iOS 13暗模式下文本字段内的标签和文本自动变为白色

iOS 13暗模式下文本字段内的标签和文本自动变为白色,ios,swift,ios13,Ios,Swift,Ios13,我的应用程序适用于13.0以下的iOS版本,但当我将设备更新到iOS 13并选择暗模式时,标签会自动变为白色(之前为黑色),而在亮模式下则不会(在亮模式下工作正常,黑色标签仍为黑色) 还有其他人也经历过同样的情况吗?到目前为止,有没有解决办法 这是因为标签的文本颜色设置为默认值。在暗模式下,文本标签的默认颜色为白色,视图的默认颜色为黑色。如果您使用的是系统颜色,则文本标签在暗模式下会自动更改。因此,您可以在应用程序中使用自定义颜色 或者您可以在Info.plist文件中设置键用户界面样式和值Li

我的应用程序适用于13.0以下的iOS版本,但当我将设备更新到iOS 13并选择暗模式时,标签会自动变为白色(之前为黑色),而在亮模式下则不会(在亮模式下工作正常,黑色标签仍为黑色)


还有其他人也经历过同样的情况吗?到目前为止,有没有解决办法

这是因为标签的文本颜色设置为默认值。在暗模式下,文本标签的默认颜色为白色,视图的默认颜色为黑色。如果您使用的是
系统
颜色,则文本标签在暗模式下会自动更改。因此,您可以在应用程序中使用自定义颜色

或者您可以在
Info.plist
文件中设置键
用户界面样式
和值
Light

以前,
UILabel
default
颜色是
黑色
,但从iOS 13开始,默认值是
LabelColor
,它是来自系统UI元素颜色的语义颜色名称。要使其始终为黑色,请将颜色更改为
黑色
(非默认)。但是请注意,背景颜色可能会同样地变为黑色(从白色)

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

window!.overrideUserInterfaceStyle = .light
注意:在iOS 13之前的
AppDelegate
窗口中,现在它位于
SceneDelegate

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


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

在应用程序的plist文件中将UIUserInterfaceStyle设置为Lightdark,以更改整个应用程序的颜色

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

<key>UIUserInterfaceStyle</key>
<string>Light</string>
UIUserInterfaceStyle
轻的
TextField(placeholder, text: self.$value)
                .colorScheme(.light)
<key>UIUserInterfaceStyle</key>
<string>Light</string>