gpt4 book ai didi

ios - iOS 11 和 Xcode 11 beta 上的命名颜色问题

转载 作者:行者123 更新时间:2023-12-02 03:00:13 25 4
gpt4 key购买 nike

我正在尝试在我的 iOS 应用程序中实现深色模式。我需要使用命名颜色才能做到这一点,但我遇到了一些障碍。在浅色和深色模式之间切换时,在 iOS 13 模拟器上一切正常,并且在 iOS 12 模拟器中颜色也正确。当我尝试在 iOS 11 模拟器上运行我的应用程序时,会出现此问题。我在 Storyboard中使用的任何命名颜色都默认为颜色的深色版本,当我尝试在代码中访问命名颜色时,我得到零。只是想知道是否还有其他人遇到过这个

最佳答案

这是 Xcode 11 和 IOS 11 中的错误。IOS 11 中命名颜色的两个问题

  1. UIColor init 方法 init?(named name: String) 在 IOS 11 中返回 nil
  2. Storyboard或 xib 文件中使用的命名颜色资源有时默认为深色版本。

以下是暂时的解决方法,直到在即将发布的 Xcode 版本中修复为止。

  1. 如果 UIColor init 方法 init?(named name: String) 返回 nil 您需要为灯光模式提供后备颜色。

    let color = UIColor(named: "myColor") ?? UIColor.black // default color for IOS 11
  2. Storyboard和 xib 文件的命名颜色问题,如果您在设置任何名称颜色后观察 xib 文件或 Storyboard的变化,您会注意到 namedColor xml 标记位于 资源选项卡。对于每个 namedColor 都有一个备用颜色,该备用颜色在 IOS 11 中是存在的,因为命名颜色不起作用。您甚至可以在控制台中看到警告。

     <resources>
    <namedColor name="NavigationBar">
    <color red="0.2669999897480011" green="0.70999997854232788" blue="0.046999998390674591" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
    </namedColor>
    </resources>

    Xcode 11 中的错误是,如果您的 MacOS 外观设置为 Dark 并且选择 light,则默认值设置为深色模式版本如果您的 MacOS 外观设置为 Light,则默认值的颜色版本。针对 iOS 11 修复此问题的解决方法。

    1. 您可以将 MacOS 外观设置为浅色。之后,您需要打开项目中的每个 Storyboard或 xib 文件一次。打开它后,编辑器将自动选择颜色的 Light 版本,您可以在源代码管理中看到文件已修改,默认值将是颜色的 Light 版本颜色 Assets 。请注意,每次更改颜色资源中的任何值时,都必须对使用该命名颜色的所有 xib 文件再次执行此操作。
    2. 第二个有点复杂,您需要编写一个脚本来解析项目的所有 xib 和 Storyboard 文件并更新默认 RGBA 值。

关于ios - iOS 11 和 Xcode 11 beta 上的命名颜色问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57580212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com