gpt4 book ai didi

ios - 通过 Storyboard命名颜色

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:35 25 4
gpt4 key购买 nike

对于我的 MacOS 应用程序,我创建了一个颜色 Assets 目录。我项目的部署目标是 10.11。

当我在 Storyboard 中设置颜色时,我可以从颜色资源中进行选择。但是当我尝试以编程方式设置其中一种命名颜色时,我需要将其包装在

if #available(OSX 10.13, *) {
view.backgroundColor = NSColor(named: "someColor")
} else {
// Fallback on earlier versions
}

原始问题:

所以问题是为什么我在通过 Storyboard选择这些颜色时没有收到任何警告?

我想我需要用自定义颜色替换它们,否则我的应用程序将在 OS < 10.13 上崩溃,但我希望 Storyboard不会让我因为部署目标而选择这些颜色..

已编辑:

所以问题是当我通过 Storyboard 使用这些颜色时会发生什么?它会使应用程序崩溃吗?或者即使操作系统版本 < 10.13, Storyboard也可以处理命名颜色?因为我试图通过 Storyboard 使用命名的颜色,并且我在装有 OS 10.12 的 Mac 上安装了该应用程序,并且该应用程序运行良好。所以我想知道这是什么原因..

附言这个问题也与 iOS 相关,其中命名颜色的最低版本是 iOS 11

最佳答案

不会使您的应用崩溃。使用 Assets 目录中的颜色,您有两个选择:

  1. 仅将其与 Storyboard一起使用。
  2. 使用 UIColor(named: <#String #>)就像您在问题中尝试做的那样。

唯一的问题是UIColor(named:)适用于 iOS 11.0+ ( See documentation )

因此,如果您想在每次需要考虑回退到最旧版本时都使用它,而这可能不是您想要的。

但是在 Xcode 的媒体库中还有一个内置的解决方案:

enter image description here

您可以从 Assets 目录中拖放颜色,Xcode 将为您创建适用于 iOS 10.0 的颜色引用。

隐藏在这种颜色中的实际代码行是:

colorLiteral(red: 0.9411764706, green: 0.07843137255, blue: 0.07843137255, alpha: 1)

因此您可以编写一个脚本来为您生成这种颜色。

前段时间我需要类似的解决方案,所以我写了一个脚本来扫描我的整个项目以查找 Assets 目录,并在其中找到一个颜色集并创建 UIColor包含 Assets 中所有颜色的扩展:

您可以在这里找到它:https://github.com/JakubMazur/SwiftColorsGenerator并且可以通过 Marathon (https://github.com/JohnSundell/Marathon) 使用

关于ios - 通过 Storyboard命名颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542828/

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