2011-05-20 14 views
5

Estoy dibujando un UIButton personalizado y quiero establecer el color azul cuando está resaltado. ¿Cómo puedo conseguir esto?UIButton color de selección

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[myButton setBackgroundImage:[[UIImage imageNamed:@"test.png"] stretchableImageWithLeftCapWidth:100 topCapHeight:0] forState:UIControlStateNormal]; 
+0

No es un duplicado. La pregunta vinculada no aborda el color de resaltado, solo el color de fondo. – len

+0

Oye, [creé una categoría que te ayuda a lograr esto] (https://github.com/NSElvis/UIButton-ANDYHighlighted). – 3lvis

Respuesta

2

Puede intentar utilizar otra imagen para hacer el trabajo. También puede hacer referencia a este enlace:

Is it even possible to change a UIButtons background color?

+5

Si otra pregunta SO responde tan completamente a esta, que todo lo que tiene que hacer es vincularla, marque para cerrarla como un duplicado en lugar de publicarla. –

+4

No es un duplicado. La pregunta vinculada no aborda el color de resaltado, solo el color de fondo. – len

0

establecer una imagen de fondo diferente Tal vez por un estado diferente?

0

Proporcione una imagen de fondo para UIControlStateHighlighted. También podría ser útil desactivar adjustsImageWhenHighlighted, aunque esto no debería importar si proporciona una imagen de fondo separada para el estado resaltado.

3

Puede hacer lo siguiente para configurar imágenes para su estado (normal/resaltado/seleccionado). Tienes que tener imágenes.

[downButton setImage:[UIImage imageNamed:@"white.png"] forState:UIControlStateNormal]; 
[downButton setImage:[UIImage imageNamed:@"blue.png"] forState:UIControlStateHighlighted]; 
2

Ya, se puede crear un 1px 1px imagen "color azul" por y utilizar lo siguiente:

[yourButton setBackgroundImage:[UIImage imageNamed:@"theImageYouMade.png"] forState:UIControlStateHighlighted]; 

No puede utilizar "setImage:" en mi método porque el estado de resaltado el botón solo mostrará la imagen de 1px por 1px en el centro del botón.

Mi método funciona para botones de tamaño variable. Usar setImage: requiere que hagas imágenes que sean exactamente del mismo tamaño que tu botón.

-Chris

+1

¡Hermosa solución! – smileBot

Cuestiones relacionadas