objective-c - guidelines - menu ios
Cómo establecer la imagen del botón para UIControlStateSelected (3)
Hola, quiero cambiar el fondo de mi botón después de presionar el botón, es decir, el botón no debe volver a la imagen anterior.
Sin embargo, no puedo hacerlo. Mi código de la siguiente manera. ¿Alguien puede aconsejarme cómo puedo cambiar la imagen a "custom_button_highlight" después de hacer clic en el botón?
UIImage *buttonImageNormal = [UIImage imageNamed:@"custom_button"];
UIImage *stretchableButtonImageNormal = [buttonImageNormal
stretchableImageWithLeftCapWidth:12 topCapHeight:0];
UIImage *buttonImagePressed = [UIImage imageNamed:@"custom_button_highlight"];
UIImage *stretchableButtonImagePressed = [buttonImagePressed
stretchableImageWithLeftCapWidth:12 topCapHeight:0];
button.titleLabel.font = [UIFont boldSystemFontOfSize:14];
[button setBackgroundImage:stretchableButtonImageNormal
forState:UIControlStateNormal];
[button setBackgroundImage:stretchableButtonImagePressed
forState:UIControlStateHighlighted];
[button setBackgroundImage:stretchableButtonImagePressed
forState:UIControlStateSelected];
Usted mencionó que no desea que la imagen cambie de nuevo ... luego, en lugar de establecerla para los estados resaltados o seleccionados, debe configurarla para el estado UIControlStateNormal.
Pero como lo necesita después de presionarlo, debe detectar el evento de que se ha presionado su botón y configurar la imagen de fondo allí.
Espero que haya sido de ayuda;)
MÉTODO 1
Veo que estás usando código para generar UIButton
. Es más fácil usar el constructor de Interfaces. Intente esto: en el constructor de interfaz (Xcode4), cree el botón y abra la barra lateral derecha. Después de eso, selecciona el botón y el tipo de botón como custom
. Después de eso en state config
, hay varios estados, para cada estado puede establecer una imagen en la image
. Espero que esto ayude...
METODO2
Si desea usar el código para generar UIButton
(me supera el porqué), parece que está haciendo lo correcto. ¿Estás seguro de que las imágenes están en tu paquete? No incluiste la extensión de la imagen (como .jpg, etc.)
[_buttonConfirm setImage:[UIImage imageNamed:@"s.png"] forState:UIControlStateSelected ];
... hace lo que quiere programáticamente, no la imagen de fondo. Pero creo que deberías seguir la respuesta de Srikar y usar el constructor de interfaces si puedes.