Get Slightly Lighter and Darker Color from UIColor

前端 未结 19 2696
猫巷女王i
猫巷女王i 2020-12-07 07:08

I was looking to be able to turn any UIColor into a gradient. The way I am intending to do this is by using Core Graphics to draw a gradient. What I am trying to do is to ge

19条回答
  •  星月不相逢
    2020-12-07 07:42

    user529758's solution in Swift:

    Darker color:

    func darkerColorForColor(color: UIColor) -> UIColor {
    
           var r:CGFloat = 0, g:CGFloat = 0, b:CGFloat = 0, a:CGFloat = 0
    
           if color.getRed(&r, green: &g, blue: &b, alpha: &a){
               return UIColor(red: max(r - 0.2, 0.0), green: max(g - 0.2, 0.0), blue: max(b - 0.2, 0.0), alpha: a)
           }
    
           return UIColor()
    }
    

    Lighter color:

    func lighterColorForColor(color: UIColor) -> UIColor {
    
           var r:CGFloat = 0, g:CGFloat = 0, b:CGFloat = 0, a:CGFloat = 0
    
           if color.getRed(&r, green: &g, blue: &b, alpha: &a){
               return UIColor(red: min(r + 0.2, 1.0), green: min(g + 0.2, 1.0), blue: min(b + 0.2, 1.0), alpha: a)
           }
    
           return UIColor()
    }
    

提交回复
热议问题