How to create a UIButton with gradient and highlight?

I am trying to create a UIButton with a gradient background. I got this working fine, but the button does not highlight (the default behavior of the button is to darken) when selected.

here is my button:

-(UIButton *)createLoginButtonForSize:(CGSize)size { UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom]; loginButton.translatesAutoresizingMaskIntoConstraints = FALSE; loginButton.layer.cornerRadius = 8; loginButton.titleLabel.text = @"Login"; [loginButton addTarget:self action:@selector(loginCheck:) forControlEvents:UIControlEventTouchUpInside]; [loginButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[loginButton(WIDTH)]" options:0 metrics:@{@"WIDTH": [NSNumber numberWithFloat:size.width]} views:NSDictionaryOfVariableBindings(loginButton)]]; [loginButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[loginButton(HEIGHT)]" options:0 metrics:@{@"HEIGHT": [NSNumber numberWithFloat:size.height]} views:NSDictionaryOfVariableBindings(loginButton)]]; CAGradientLayer *layer = [UIColor greenGradient]; layer.frame = CGRectMake(0, 0, size.width, size.height); layer.cornerRadius = 8; [loginButton.layer insertSublayer:layer atIndex:0]; return loginButton; } 

Do I need to handle the selection myself?

+4
source share
1 answer

Yes, you will need to handle the selection yourself. Instead of rolling your own code, you should check out Jeff Lamarche's incredibly easy-to-use iPhone Gradient Buttons Project . He does exactly what you are trying to do. These are just 2 files, so they are easy to include in your project:

http://code.google.com/p/iphonegradientbuttons/source/browse/trunk/Classes/GradientButton.h http://code.google.com/p/iphonegradientbuttons/source/browse/trunk/Classes/GradientButton.m

Screenshot taken from Jeff's Blog discussing the project .

Imageless gradient buttons

+5
source

All Articles