我可以在 SwiftUI 中使用颜色文字吗

Ami*_*ant 10 uicolor nscolor swift swiftui xcode11

我想使用颜色文字使用资产目录中的颜色资产。在UIKit,我们可以直接使用颜色文字有没有什么方法可以在 SwiftUI 中使用颜色文字

我已经从带有UIColor参数的Color 初始值设定项中进行了搜索,但没有找到

Jim*_*ray 17

Xcode Swift UI 的轻松拖放颜色

\n

我发现在设计布局时它很有帮助,我需要快速找到并调整颜色以使用此方法。

\n

每当我想在 SwiftUI 中使用拖放样式颜色文字时,我都会这样做。

\n

稍后,我可以返回并将硬编码颜色添加到我的配色方案中,只需注释掉代码中的“//”颜色文字行即可显示我所选颜色的 RGB。

\n

在 Xcode、Swift、SwiftUI 中使用简单的拖放颜色文字

\n
\n
    \n
  • 抱歉,除了以这种格式发布之外,我找不到任何其他方式来描述这个答案*
  • \n
\n

希望有帮助。

\n
\n

更新:从 Xcode 13.2.1 开始

\n

很可能它更早出现,但我没有\xe2\x80\x99t抓住它。

\n

要使自动完成功能正常工作,请在代码中键入此行。

\n
#colorLiteral()\n
Run Code Online (Sandbox Code Playgroud)\n

然后代码会自动将文字放入代码中供您进行选择。

\n
\n


Giu*_*nza 7

您可以Color通过将字符串名称传递到init.

所以,如果我的里面有“背景”颜色Assets.xcassets:

在此处输入图片说明

我会用:

let backgroundColor = Color("Background")
Run Code Online (Sandbox Code Playgroud)

或者,如果颜色是在另一个中定义的,Bundle您可以使用:

Color(name: String, bundle: Bundle)
Run Code Online (Sandbox Code Playgroud)

PS 似乎颜色文字不适用于资产颜色


Moj*_*ini 5

注:在Xcode 11测试版5,Color有这样的一个初始化已经没必要来实现它。

所以你可以像这样使用 colorLiteral :

Color(#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1))
Run Code Online (Sandbox Code Playgroud)

预览

或任何其他CGColor,UIColor(或NSColor适用于 macOS):

Color(.red)
Run Code Online (Sandbox Code Playgroud)