Este método hace un buen botón personalizado. Combiné los ejemplos para la capa de degradado y para una capa de brillo.
-(void) myButtonChange: (UIButton*) btn
{
[btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
CAGradientLayer *btnGradient = [CAGradientLayer layer];
btnGradient.frame = btn.bounds;
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:255.0f/255.0f green:255.0f/255.0f blue:255.0f/255.0f alpha:.6f] CGColor],
(id)[[UIColor colorWithRed:200.0f/255.0f green:200.0f/255.0f blue:200.0f/255.0f alpha:.4f] CGColor],
(id)[[UIColor colorWithRed:150.0f/255.0f green:150.0f/255.0f blue:150.0f/255.0f alpha:.4f] CGColor],
(id)[[UIColor colorWithRed:100.0f/255.0f green:100.0f/255.0f blue:100.0f/255.0f alpha:.4f] CGColor],
(id)[[UIColor colorWithRed:50.0f/255.0f green:50.0f/255.0f blue:50.0f/255.0f alpha:.4f] CGColor],
(id)[[UIColor colorWithRed:5.0f/255.0f green:5.0f/255.0f blue:5.0f/255.0f alpha:.4f] CGColor],
nil];
[btn.layer insertSublayer:btnGradient atIndex:0];
CAGradientLayer *glossLayer = [CAGradientLayer layer];
glossLayer.frame = btn.bounds;
glossLayer.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithWhite:1.0f alpha:0.4f].CGColor,
(id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,
(id)[UIColor colorWithWhite:0.75f alpha:0.0f].CGColor,
(id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,
nil];
glossLayer.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0f],
[NSNumber numberWithFloat:0.5f],
[NSNumber numberWithFloat:0.5f],
[NSNumber numberWithFloat:1.0f],
nil];
[btn.layer insertSublayer:glossLayer atIndex:0];
CALayer *btnLayer = [btn layer];
[btnLayer setMasksToBounds:YES];
UIColor*mycolor = btn.backgroundColor;
[btn.layer setBorderColor:[mycolor CGColor]];
[[btn layer] setBorderWidth:2.0f];
[[btn layer] setCornerRadius:10.0f];
}
Una todos los botones para una colección IBOutlet ...
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *bigbuttongroup;
... y luego ejecutar el método cuando necesite
for(UIButton *btn in self.bigbuttongroup)
{
[self myButtonChange:btn];
}
Siéntase libre de echar un vistazo a este truco que he usado para crear imágenes de botón http://memention.com/blog/2010/02/22/Make-it-work.html – epatel