我正试图在我的iOS应用程序中实现黑暗模式。为了做到这一点,我需要使用命名颜色,但我遇到了一些麻烦。当在光和暗模式之间切换时,在iOS 13模拟器上一切都很好,并且在iOS 12模拟器中颜色也是正确的。当我试图在iOS 11模拟器上运行我的应用程序时,就会出现这个问题。我在故事板中使用的任何命名颜色默认为该颜色的黑暗版本,并且当我试图访问代码中的命名颜色时,我将得到零。只是想知道是否有其他人遇到过这个
发布于 2019-09-16 12:41:07
这是Xcode 11和IOS 11中的错误。
UIColor init方法init?(named name: String)在IOS 11中返回nil下面是在即将发布的Xcode版本中修复之前的解决方法。
UIColor init方法init?(named name: String)返回nil,则需要为光模式提供回退颜色。
设UIColor=myColor(命名:"myColor") ??IOS 11的UIColor.black //默认颜色resources选项卡下有一个xml标记。对于每个namedColor,都有回退颜色,这种回退颜色是在IOS 11的情况下,因为命名颜色不起作用。你甚至可以看到你的控制台中的翘曲。
Xcode 11中的Bug是,如果将MacOS外观设置为Dark,则默认值设置为暗模式版本;如果将MacOS外观设置为Light,则选择light颜色版本作为默认值。为IOS 11解决这个问题的方法。1. You can set your `MacOS` appearance to `Light`. After that you need to open each and every storyboards or xib files in yours project once. Once you open it, editor will automatically pick the `Light` version of your colors and you can see in your source control that file is modified and default value will be `Light` version of your color asset. Note that every time your change any value in your color assets, you have to do this again for all the xib files using that named color.
2. Second is a bit complicated that your write a script that parse all the xib and storyboard files for your project and update the default RGBA values.
发布于 2019-09-11 10:25:42
似乎问题就在苹果这一边。甚至Xcode 11转基因种子也有这个问题。人们正在苹果开发者论坛上讨论这个问题。
发布于 2019-09-24 13:25:13
更新11.0版本的Xcode (11A420a)
对于那些有这个问题的人和故事板,我建议你的配色方案使用“任何外观”默认为灯光模式。例如,对于深色的我有灰色的背景和亮它的白色,字体是相反的,白色和darkGray。默认一切为光模式,IOS会将其解释为光,您将不会有问题。

正如你在我的屏幕截图上看到的,我的应用程序在IOS 11上运行正常。

如果我不这样做,可能我的所有字体都是白色的,用户根本看不到任何东西。
https://stackoverflow.com/questions/57580212
复制相似问题