如何使用十六进制颜色值

如何使用十六进制颜色值

我试图在SWIFT中使用十六进制颜色值,而不是少数标准值UIColor允许你使用,但我不知道怎么做。

示例:我将如何使用#ffffff作为一种颜色?


幕布斯6054654
浏览 871回答 3
3回答

大话西游666

#ffffff实际上是三种颜色组成的十六进制表示法-红色。ff绿ff蓝色ff..您可以使用SWIFT编写十六进制表示法0x前缀,例如0xFF为了简化转换,让我们创建一个接受整数(0-255)值的初始化器:extension&nbsp;UIColor&nbsp;{ &nbsp;&nbsp;&nbsp;convenience&nbsp;init(red:&nbsp;Int,&nbsp;green:&nbsp;Int,&nbsp;blue:&nbsp;Int)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(red&nbsp;>=&nbsp;0&nbsp;&&&nbsp;red&nbsp;<=&nbsp;255,&nbsp;"Invalid&nbsp;red&nbsp;component") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(green&nbsp;>=&nbsp;0&nbsp;&&&nbsp;green&nbsp;<=&nbsp;255,&nbsp;"Invalid&nbsp;green&nbsp;component") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(blue&nbsp;>=&nbsp;0&nbsp;&&&nbsp;blue&nbsp;<=&nbsp;255,&nbsp;"Invalid&nbsp;blue&nbsp;component") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.init(red:&nbsp;CGFloat(red)&nbsp;/&nbsp;255.0,&nbsp;green:&nbsp;CGFloat(green)&nbsp;/&nbsp;255.0,&nbsp;blue:&nbsp;CGFloat(blue)&nbsp;/&nbsp;255.0,&nbsp;alpha:&nbsp;1.0) &nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;convenience&nbsp;init(rgb:&nbsp;Int)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.init( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:&nbsp;(rgb&nbsp;>>&nbsp;16)&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green:&nbsp;(rgb&nbsp;>>&nbsp;8)&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue:&nbsp;rgb&nbsp;&&nbsp;0xFF &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) &nbsp;&nbsp;&nbsp;}}用法:let&nbsp;color&nbsp;=&nbsp;UIColor(red:&nbsp;0xFF,&nbsp;green:&nbsp;0xFF,&nbsp;blue:&nbsp;0xFF)let&nbsp;color2&nbsp;=&nbsp;UIColor(rgb:&nbsp;0xFFFFFF)怎么得到阿尔法?根据用例的不同,您可以简单地使用本机UIColor.withAlphaComponent方法,如:let&nbsp;semitransparentBlack&nbsp;=&nbsp;UIColor(rgb:&nbsp;0x000000).withAlphaComponent(0.5)也可以向上述方法添加附加(可选)参数:convenience&nbsp;init(red:&nbsp;Int,&nbsp;green:&nbsp;Int,&nbsp;blue:&nbsp;Int,&nbsp;a:&nbsp;CGFloat&nbsp;=&nbsp;1.0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;self.init( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:&nbsp;CGFloat(red)&nbsp;/&nbsp;255.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green:&nbsp;CGFloat(green)&nbsp;/&nbsp;255.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue:&nbsp;CGFloat(blue)&nbsp;/&nbsp;255.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alpha:&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;)}convenience&nbsp;init(rgb:&nbsp;Int,&nbsp;a:&nbsp;CGFloat&nbsp;=&nbsp;1.0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;self.init( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:&nbsp;(rgb&nbsp;>>&nbsp;16)&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green:&nbsp;(rgb&nbsp;>>&nbsp;8)&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue:&nbsp;rgb&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;)}(我们不能命名参数alpha因为名称与现有的初始化程序发生冲突)。称为:let&nbsp;color&nbsp;=&nbsp;UIColor(red:&nbsp;0xFF,&nbsp;green:&nbsp;0xFF,&nbsp;blue:&nbsp;0xFF,&nbsp;a:&nbsp;0.5)let&nbsp;color2&nbsp;=&nbsp;UIColor(rgb:&nbsp;0xFFFFFF,&nbsp;a:&nbsp;0.5)要将alpha作为整数0-255,我们可以convenience&nbsp;init(red:&nbsp;Int,&nbsp;green:&nbsp;Int,&nbsp;blue:&nbsp;Int,&nbsp;a:&nbsp;Int&nbsp;=&nbsp;0xFF)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;self.init( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:&nbsp;CGFloat(red)&nbsp;/&nbsp;255.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green:&nbsp;CGFloat(green)&nbsp;/&nbsp;255.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue:&nbsp;CGFloat(blue)&nbsp;/&nbsp;255.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alpha:&nbsp;CGFloat(a)&nbsp;/&nbsp;255.0 &nbsp;&nbsp;&nbsp;&nbsp;)}//&nbsp;let's&nbsp;suppose&nbsp;alpha&nbsp;is&nbsp;the&nbsp;first&nbsp;component&nbsp;(ARGB)convenience&nbsp;init(argb:&nbsp;Int)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;self.init( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:&nbsp;(argb&nbsp;>>&nbsp;16)&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green:&nbsp;(argb&nbsp;>>&nbsp;8)&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue:&nbsp;argb&nbsp;&&nbsp;0xFF, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;(argb&nbsp;>>&nbsp;24)&nbsp;&&nbsp;0xFF &nbsp;&nbsp;&nbsp;&nbsp;)}被称为let&nbsp;color&nbsp;=&nbsp;UIColor(red:&nbsp;0xFF,&nbsp;green:&nbsp;0xFF,&nbsp;blue:&nbsp;0xFF,&nbsp;a:&nbsp;0xFF)let&nbsp;color2&nbsp;=&nbsp;UIColor(argb:&nbsp;0xFFFFFFFF)或者是前几种方法的组合。绝对没有必要使用字符串。
打开App,查看更多内容
随时随地看视频慕课网APP