0
votes

I have a icon asset in interface builder which I have as my button image. I can change the colour of it using

button.tintColor = UIColor.blueColor()

Can I apply a gradient though to a tintColor property?

UPDATE

For clarity, my png image icon has different shapes, heart, camera, which I have set up as template images. They all have transparent backgrounds.

1

1 Answers

1
votes

You can insert CAGradientLayer into your button and apply the tintColor.

Another way is to subclass the UIButton, and in drawRect, use CoreGraphics to draw the gradient effect like:

-(void) drawRect:(CGRect)rect
{
    ... 
    // setup up your tint color for startColor, endColor
    drawLinearGradient(context, rect, startColor, endColor);
}

If you have a transparent background, you can use your view's layer's mask property to achieve gradient.