iOS - Setting UIButton background color only colors the corners

8vius picture 8vius · Apr 2, 2012 · Viewed 25.5k times · Source

I'm trying to customize my button by changing their colors, but when I use either:

self.loginButton.layer.backgroundColor = [UIColor colorWithRed:0.0 green:157.0/255.0 blue:223.0/255.0 alpha:1.0].CGColor;

or

self.loginButton.backgroundColor = [UIColor colorWithRed:0.0 green:157.0/255.0 blue:223.0/255.0 alpha:1.0];

All I get is this result:

enter image description here

What I want to do is change the white color to blue, any idea what I'm doing wrong?

Answer

jrturton picture jrturton · Apr 2, 2012

You're using a round rect button which is pretty ugly, and pretty hard to customise.

You can create a custom type button and use a background image, or create a custom type button and round the corners and set the background colour of the layer yourself.

If you want to get really fancy there is a nice tutorial here which can give you any-sized gradient type buttons using layers, no image files required.