栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用十六进制颜色值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用十六进制颜色值

#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)

或上述方法的组合。绝对不需要使用字符串。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448332.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号