2010-02-14 10 views

Respuesta

244

Su botón debe tener su buttonType configurado en Personalizado.

En IB puede desmarcar "Resaltar ajusta la imagen".

programación puede utilizar theButton.adjustsImageWhenHighlighted = NO;

opciones similar están disponibles para el estado "desactivado" también.

+1

alguna posibilidad de que sabe lo que sería la versión programática de esto? Ahora mismo lo tengo trabajando de forma hackosa al desactivarlo y vistiéndolo como seleccionado. – kbanman

+94

uibutton.adjustsImageWhenHighlighted = NO; – Haydn

+33

También asegúrese de que el tipo de botón esté configurado en CUSTOM. (Como Mosib Asad mencionó en otra respuesta) –

4

Dependiendo de lo que cambie del estado predeterminado al estado resaltado del botón, puede llamar a un par de métodos para configurarlos según lo que necesita. Así que si la imagen cambia usted puede hacer

[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted]; 

Si el texto cambia puede hacer otras

[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted]; 

funciones similares:

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state

+0

setTitleColor es todo lo que necesité para deshabilitar resaltar en el texto de uibutton – atulkhatri

3

Aceptar He aquí una solución fácil si esto funciona para usted, después de un A la semana de golpearme la cabeza con esto, finalmente se me ocurrió establecer simplemente resaltado = NO para la primera línea del método IBAction para TouchUpInside o TouchDown, o lo que sea que funcione. Para mí, estuvo bien en TouchUpInside.

-(IBAction)selfDismiss:(id)sender { 

    self.btnImage.highlighted = NO; 

    NSLog(@"selfDismiss"); 

    etc, etc, etc. 

} 
21
button.adjustsImageWhenDisabled = NO; 

es igualmente útil para tener su propia apariencia de un botón desactivado.

34

Esto funcionará para usted:

[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal]; 
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected]; 
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted]; 

tercera línea es el truco aquí ...

Esto funciona de la misma para el ajuste de imagen/BackgroundImage

+1

Esto funciona perfecto para mí. La propiedad 'adjustustsWhenHighlighted' de' UIButton' parece afectar solo a la imagen de fondo. –

+0

Tenga en cuenta que si decide asignar una imagen al 'estado deshabilitado', no debe llamar a setBackgroundImage. En su lugar, debe hacer lo siguiente [button setImage: image forState: UIControlStateDisabled]; También tenga en cuenta que, como se menciona en este hilo, la propiedad adjustbilitiesImageWhenHighlighted UIButton solo afecta a la imagen de fondo. – HamasN

26
adjustsImageWhenHighlighted = NO; 
33

Además de lo anterior Si desactivas la opción "resaltar ajusta la imagen" en IB, asegúrate de que el tipo de botón esté configurado PERSONALIZADO.

+2

Esta fue la pieza que faltaba: botón tipo CUSTOM. Gracias! – JOM

+1

¿Qué pasa si me gustaría mantener como un UIButton del sistema? ¿No puedo quitar la imagen de ajuste de resaltado? –

-2

evitar fijar de UIButton salto de línea a Clip, utilice en su lugar el estándar Truncar Medio

enter image description here

2

solo dos cosas:

UIButton *btnTransparentComponent = [UIButton buttonWithType:UIButtonTypeCustom]; 
btnTransparentComponent.adjustsImageWhenHighlighted = NO; 
2

tuve un problema similar y descubrió que "desmarcar" borra el contenido gráfico en el generador de interfaz me solucionó mi problema

enter image description here

2

Para Swifty desarrollador -

yourButton.adjustsImageWhenHighlighted = false 
1

hacer su tipo de botón - "Custom" y desactive - Destacado Ajuste de imagen y haya terminado.

0

Swift 3+

button.adjustsImageWhenHighlighted = false 

button.adjustsImageWhenDisabled = false 
Cuestiones relacionadas