How to get RGB values from UIColor?

后端 未结 15 1654
孤城傲影
孤城傲影 2020-11-28 22:27

I\'m creating a color object using the following code.

curView.backgroundColor = [[UIColor alloc] initWithHue:229 saturation:40 brightness:75 alpha:1];
         


        
15条回答
  •  爱一瞬间的悲伤
    2020-11-28 23:10

    SWIFT 3 & 4

    I found that cgColor.components would not always return 4 color values, so I changed this so it gets them from a CIColor wrapper

    extension UIColor {
        var redValue: CGFloat{ return CIColor(color: self).red }
        var greenValue: CGFloat{ return CIColor(color: self).green }
        var blueValue: CGFloat{ return CIColor(color: self).blue }
        var alphaValue: CGFloat{ return CIColor(color: self).alpha }
    }
    

    SWIFT 2

    extension UIColor {
        var red: CGFloat{ return CGColorGetComponents(self.CGColor)[0] }
        var green: CGFloat{ return CGColorGetComponents(self.CGColor)[1] }
        var blue: CGFloat{ return CGColorGetComponents(self.CGColor)[2] }
        var alpha: CGFloat{ return CGColorGetComponents(self.CGColor)[3] }
    }
    

    It's not the most efficient way so I wouldn't go using this where a view will be constantly re-drawn.

提交回复
热议问题