我可以在 SwiftUI 中使用颜色文字吗
Can I use color literals in SwiftUI
我想通过颜色文字使用资产目录中的颜色资产。
在UIKit
中,我们可以直接使用color literal 有没有办法在SwiftUI
中使用color literals
我使用 UIColor
参数从颜色初始值设定项中进行了搜索,但 none 找到了
您可以通过在 init
中传递字符串名称来使用资产目录中定义的 Color
。
所以,如果我的 Assets.xcassets
中有 "Background" 颜色:
我会用:
let backgroundColor = Color("Background")
或者,如果颜色在另一个 Bundle
中定义,您可以使用:
Color(name: String, bundle: Bundle)
P.S。颜色文字似乎不适用于资产颜色的
您可以使用 UIColor 的 getRed() 方法获取红色、绿色、蓝色和 alpha 分量,然后使用它们创建 Color 对象。您甚至可以创建一个为您完成此操作的扩展程序。
注意: 从 Xcode 11 Beta 5 开始,Color
有一个初始化程序 已经 并且没有需要实施它。
所以你可以像这样使用 colorLiteral:
Color(#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1))
或任何其他 CGColor
、UIColor
(或 NSColor
for macOS):
Color(.red)
您实际上可以使用此隐藏协议为 Color
提供与 UIColor
相同的颜色文字使用:
extension Color: _ExpressibleByColorLiteral {
public init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) {
self = Color(.sRGB, red: Double(red), green: Double(green), blue: Double(blue), opacity: Double(alpha))
}
}
现在您可以为 Color
参数使用颜色文字。
是的,SwiftUI 有颜色文字。
颜色文字是颜色结构的参数。使用以下步骤:
1. 输入单词 Colo
2. Select 来自自动完成的颜色文字
3. 现在你可以点击颜色文字和select一个颜色
Xcode Swift UI
的简单拖放颜色
我发现在设计需要快速查找和调整颜色的布局时使用此方法很有帮助。
每当我想在 SwiftUI.
中使用拖放样式颜色文字时,我都会这样做
稍后,我可以返回并将硬编码颜色添加到我的配色方案中,只需在我的代码中注释掉“//”颜色文字行即可显示我所选颜色的 RGB。
- 抱歉,我找不到任何其他方式来描述这个答案,除了以这种格式发布 *
希望对您有所帮助。
更新:截至 Xcode 13.2.1
很可能它出现得更早,但我没看到。
要使自动完成功能正常工作,请在您的代码中键入此行。
#colorLiteral()
然后代码会自动将字面量放在代码中供您选择。
我想通过颜色文字使用资产目录中的颜色资产。
在UIKit
中,我们可以直接使用color literal 有没有办法在SwiftUI
我使用 UIColor
参数从颜色初始值设定项中进行了搜索,但 none 找到了
您可以通过在 init
中传递字符串名称来使用资产目录中定义的 Color
。
所以,如果我的 Assets.xcassets
中有 "Background" 颜色:
我会用:
let backgroundColor = Color("Background")
或者,如果颜色在另一个 Bundle
中定义,您可以使用:
Color(name: String, bundle: Bundle)
P.S。颜色文字似乎不适用于资产颜色的
您可以使用 UIColor 的 getRed() 方法获取红色、绿色、蓝色和 alpha 分量,然后使用它们创建 Color 对象。您甚至可以创建一个为您完成此操作的扩展程序。
注意: 从 Xcode 11 Beta 5 开始,Color
有一个初始化程序 已经 并且没有需要实施它。
所以你可以像这样使用 colorLiteral:
Color(#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1))
或任何其他 CGColor
、UIColor
(或 NSColor
for macOS):
Color(.red)
您实际上可以使用此隐藏协议为 Color
提供与 UIColor
相同的颜色文字使用:
extension Color: _ExpressibleByColorLiteral {
public init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) {
self = Color(.sRGB, red: Double(red), green: Double(green), blue: Double(blue), opacity: Double(alpha))
}
}
现在您可以为 Color
参数使用颜色文字。
是的,SwiftUI 有颜色文字。
颜色文字是颜色结构的参数。使用以下步骤:
1. 输入单词 Colo
2. Select 来自自动完成的颜色文字
3. 现在你可以点击颜色文字和select一个颜色
Xcode Swift UI
的简单拖放颜色我发现在设计需要快速查找和调整颜色的布局时使用此方法很有帮助。
每当我想在 SwiftUI.
中使用拖放样式颜色文字时,我都会这样做稍后,我可以返回并将硬编码颜色添加到我的配色方案中,只需在我的代码中注释掉“//”颜色文字行即可显示我所选颜色的 RGB。
- 抱歉,我找不到任何其他方式来描述这个答案,除了以这种格式发布 *
希望对您有所帮助。
更新:截至 Xcode 13.2.1
很可能它出现得更早,但我没看到。
要使自动完成功能正常工作,请在您的代码中键入此行。
#colorLiteral()
然后代码会自动将字面量放在代码中供您选择。