nOk*_*nOk 6 colors uicolor swift swiftui
I want to use a UIColor as foregroundcolor for an object but I don’t know how to convert UIColor to a Color
var myColor: UIColor
RoundedRectangle(cornerRadius: 5).foregroundColor(UIColor(myColor))
Run Code Online (Sandbox Code Playgroud)
Moj*_*ini 27
Color有一个本地初始化器,它接受一个UIColor或NSColor作为参数:
Color(.red) /* or any other UIColor/NSColor you need INSIDE parentheses */
Run Code Online (Sandbox Code Playgroud)
不要Color(UIColor.red)显式调用!!!. 这会将您的 SwiftUI 代码与UIKit. 相反,只需调用Color(.red)That 将自动推断正确的模块。
另外,请注意这个区别:
Color.red /* this `red` is SwiftUI native `red` */
Color(.red) /* this `red` is UIKit `red` */
Run Code Online (Sandbox Code Playgroud)
Color.red并且UIColor.red是不一样的!他们有不同的价值观和期待不同的对方。所以不要认为这不值钱
这些是相等的: SwiftUI.Color.Red == UIKit.UIColor.systemRed
此外,您可以查看如何从 SwiftUI.Color 获取 RGB 组件
您可以为它实现一个自定义变量,使其更像cgColor和ciColor
extension UIColor {
/// The SwiftUI color associated with the receiver.
var suColor: Color { Color(self) }
}
Run Code Online (Sandbox Code Playgroud)
所以它会像:
UIColor.red // UIKit color
UIColor.red.suColor // SwiftUI color
UIColor.red.cgColor // Core graphic color
UIColor.red.ciColor // Core image color
Run Code Online (Sandbox Code Playgroud)
注意:点击这里查看如何转换SwiftUI.Color为UIColor
kon*_*iki 18
从beta 5开始,您可以从UIColor创建颜色:
Color(UIColor.systemBlue)
Run Code Online (Sandbox Code Playgroud)
小智 5
使用两个帮助程序扩展:
从中提取成分UIColor:
extension UIColor {
var rgba: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
var red: CGFloat = 0
var green: CGFloat = 0
var blue: CGFloat = 0
var alpha: CGFloat = 0
getRed(&red, green: &green, blue: &blue, alpha: &alpha)
return (red, green, blue, alpha)
}
}
Run Code Online (Sandbox Code Playgroud)
要init使用UIColor:
extension Color {
init(uiColor: UIColor) {
self.init(red: Double(uiColor.rgba.red),
green: Double(uiColor.rgba.green),
blue: Double(uiColor.rgba.blue),
opacity: Double(uiColor.rgba.alpha))
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
Color(uiColor: .red)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2065 次 |
| 最近记录: |