iPhone iOS personalizado UIButton con CAGradientLayer, ¿cómo hacerlo indicar tacto?

Tengo un button personalizado estilo UIB dentro de mis controlleres de vista que se logra personalizando un button UIB con un CAGradientLayer, networkingondeando esquinas y agregando un borde alnetworkingedor de la capa. Botón de degradado

Me gusta la apariencia de estos botones, y son muy fáciles de lograr también, sin tener que usar imágenes pnetworkingiseñadas. Pero tengo un problema: ese button no responde al tocar la forma en que lo hace un UIButton . Por ejemplo, un button rectángulo networkingondeado típico destaca azul cuando se toca, pero mi button no lo hace.

¿Cómo puedo lograr el comportamiento del button "resaltar el toque" si CAGradientLayer backgrounds CAGradientLayer personalizados en un button UIB como se indica en el siguiente código?

¡Gracias por su aporte!

 +(void)addLinearGradientToView:(UIView*)view TopColor:(UIColor*)topColor BottomColor:(UIColor*)bottomColor { for(CALayer* layer in view.layer.sublayers) { if ([layer isKindOfClass:[CAGradientLayer class]]) { [layer removeFromSuperlayer]; } } CAGradientLayer* gradientLayer = [CAGradientLayer layer]; //top down gradient gradientLayer.startPoint = CGPointMake(0.5, 0); gradientLayer.endPoint = CGPointMake(0.5,1); gradientLayer.frame = view.bounds; gradientLayer.colors = [NSArray arrayWithObjects:(id)[topColor CGColor], (id)[bottomColor CGColor], nil]; [view.layer insertSublayer:gradientLayer atIndex:0]; } 

Si subclass UIB, puede anular el método setHighlighted . Aquí puede configurar un Degradado diferente en el button, o cambiar el color de background.

 - (void)setHighlighted:(BOOL)highlighted { [super setHighlighted:highlighted]; // Update the looks of the button } 

El bucle for en su código arrojará un error.

Debes recorrer las capas hacia atrás de esta manera.

 NSEnumerator *enumerator = [btn.layer.sublayers reverseObjectEnumerator]; for(CALayer *layer in enumerator) { if ([layer isKindOfClass:[CAGradientLayer class]]) { [layer removeFromSuperlayer]; } }