我正在尝试在Swift中使用十六进制颜色值,而不是UIColor
允许您使用的几个标准颜色值,但是我不知道该怎么做。
示例:如何将其#ffffff
用作颜色?
#ffffff
实际上是用十六进制表示的3种颜色分量-
红色ff
,绿色ff
和蓝色ff
。您可以使用0x
前缀在Swift中编写十六进制表示法,例如0xFF
为了简化转换,让我们创建一个采用整数(0-255)值的初始化程序:
extension UIColor {
convenience init(red: Int, green: Int, blue: Int) {
assert(red >= 0 && red <= 255, "Invalid red component")
assert(green >= 0 && green <= 255, "Invalid green component")
assert(blue >= 0 && blue <= 255, "Invalid blue component")
self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: 1.0)
}
convenience init(rgb: Int) {
self.init(
red: (rgb >> 16) & 0xFF,
green: (rgb >> 8) & 0xFF,
blue: rgb & 0xFF
)
}
}
用法:
let color = UIColor(red: 0xFF, green: 0xFF, blue: 0xFF)
let color2 = UIColor(rgb: 0xFFFFFF)
如何获得阿尔法?
根据您的用例,您可以简单地使用本机UIColor.withAlphaComponent
方法,例如
let semitransparentBlack = UIColor(rgb: 0x000000).withAlphaComponent(0.5)
或者,您可以在上述方法中添加其他(可选)参数:
convenience init(red: Int, green: Int, blue: Int, a: CGFloat = 1.0) {
self.init(
red: CGFloat(red) / 255.0,
green: CGFloat(green) / 255.0,
blue: CGFloat(blue) / 255.0,
alpha: a
)
}
convenience init(rgb: Int, a: CGFloat = 1.0) {
self.init(
red: (rgb >> 16) & 0xFF,
green: (rgb >> 8) & 0xFF,
blue: rgb & 0xFF,
a: a
)
}
(alpha
由于与现有初始化程序的名称冲突,我们无法命名参数)。
称为:
let color = UIColor(red: 0xFF, green: 0xFF, blue: 0xFF, a: 0.5)
let color2 = UIColor(rgb: 0xFFFFFF, a: 0.5)
要将alpha设为0-255的整数,我们可以
convenience init(red: Int, green: Int, blue: Int, a: Int = 0xFF) {
self.init(
red: CGFloat(red) / 255.0,
green: CGFloat(green) / 255.0,
blue: CGFloat(blue) / 255.0,
alpha: CGFloat(a) / 255.0
)
}
// let's suppose alpha is the first component (ARGB)
convenience init(argb: Int) {
self.init(
red: (argb >> 16) & 0xFF,
green: (argb >> 8) & 0xFF,
blue: argb & 0xFF,
a: (argb >> 24) & 0xFF
)
}
称为
let color = UIColor(red: 0xFF, green: 0xFF, blue: 0xFF, a: 0xFF)
let color2 = UIColor(argb: 0xFFFFFFFF)
或上述方法的组合。绝对不需要使用字符串。
这就是我所做的 这将返回一个字符串“0XFFhexcode”,我想将其转换为long,将其存储,然后将其用作颜色 我有以下错误
如何在Flutter中将这样的十六进制颜色字符串转换为? 我想在Dart中使用一个十六进制颜色代码。
我想改变我的应用程序中的原色,所以我尝试: 但这不起作用,所以我检查了文档,找到了另一种方法,即使用 所以我的问题是:如何用十六进制颜色改变原色
本文向大家介绍Flutter十六进制颜色转换成颜色对象,包括了Flutter十六进制颜色转换成颜色对象的使用技巧和注意事项,需要的朋友参考一下 十六进制颜色值格式一般如:#ff0000,以#开头,后面跟着6个十六进制字符。 而flutter中不能直接使用此类形式的颜色值,所以必须要转换为flutter颜色对象。 参考地址: https://stackoverflow.com/questions/5
问题内容: 假设我有一个十六进制,例如:5fc9f8 是否存在接受“黑暗程度”(-10到10)并返回反映该水平的十六进制的函数? 黑暗是指添加黑色/从颜色中删除黑色。 问题答案: import UIKit 游乐场测试