ios objective-c uibutton cagradientlayer

ios - Cómo crear un UIButton con degradado y resaltado?



objective-c cagradientlayer (1)

Sí, deberá manejar el resaltado usted mismo. Sin embargo, en lugar de rodar tu propio código, deberías echarle un vistazo al increíble iPhone de Jeff Lamarche, que es increíblemente fácil de usar. Hace exactamente lo que estás tratando de hacer. Son solo 2 archivos, por lo que es fácil de incorporar a su proyecto:

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

Captura de pantalla a continuación tomada del blog de Jeff discutiendo el proyecto .

Estoy tratando de crear un UIButton con un fondo degradado. Funcioné bien, pero el botón no se resalta (el comportamiento predeterminado es oscurecer el botón) cuando se selecciona.

aquí está mi botón:

-(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; }

¿Debo manejar el resaltado yo mismo?