如何以编程方式使用十六进制颜色来更改视图bg?

时间:2014-12-30 01:12:03

标签: ios iphone swift ios8

view.backgroundColor = UIColor.brownColor()

更改背景,但仅限于几种颜色,有没有办法使用十六进制颜色代码?

2 个答案:

答案 0 :(得分:1)

没有内置的十六进制转换器,但这里的一个适用于swift。如果您愿意,也可以使用RGB转换器。

How to use hex colour values in Swift, iOS

上面链接的已接受答案的代码:

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(netHex:Int) {
       self.init(red:(netHex >> 16) & 0xff, green:(netHex >> 8) & 0xff, blue:netHex & 0xff)
   }
}

用法:

var color = UIColor(red: 0xFF, blue: 0xFF, green: 0xFF)
var color2 = UIColor(netHex:0xFFFFFF)

答案 1 :(得分:1)

使用扩展程序

    extension UIColor
    {
        class func myGreenColor() -> UIColor
        {
            return UIColor(red: 0.145, green: 0.608, blue: 0.141, alpha: 1.0)/*#259b24*/
        }
     }

这个web将hex转换为UIColor是objective-c,你应该很容易将objective-c代码变成swift:P:D