2010-08-12 27 views
12

Quiero desactivar mi UIButton, por lo que llamo:Evitar hacer una UIButton transparente/transparente cuando su desactivación

button.enabled = FALSE; 

Sin embargo, esto hace que el botón de ver a través y puedo ver los elementos por debajo de ella. No me importa que cambie de color, simplemente no quiero que sea transparente.

He intentado marcar las casillas de "opacas" y "subvistas de clips" en IB, pero no me gusta.

¿Hay una manera fácil de arreglar esto? Supongo que podría poner un UIImageView con la misma imagen de botón detrás, pero no es una solución elegante.

Gracias a todos !!

Michael

Respuesta

24

Trate userInteractionEnabled propiedad:

button.userInteractionEnabled = NO; 
+0

¡Perfecto! Gracias - Realmente debería haber pensado en eso: D – Smikey

+1

La respuesta de @moby es la correcta. – MatterGoal

+0

Bueno, este funciona pero podría tener otros problemas ya que los toques en el botón no se enviarán a la vista principal. Button.adjustsImageWhenDisabled = NO; es mejor que @Snowman propuso –

1

En constructor de interfaces seleccionar el botón y luego echar un vistazo a los atributos de los botones. Hay un menú desplegable para configuraciones de estado predeterminadas, resaltadas, seleccionadas o deshabilitadas - seleccione deshabilitado y luego ajuste la propiedad alfa.

+0

Aaaah, gracias, me he dado cuenta de que de alguna manera nunca! Sin embargo, cuando selecciono la configuración de estado desactivada, no cambia nada en el panel 'Ver', el alfa todavía está en 1 y las casillas de 'opaco', etc., permanecen iguales independientemente de la configuración de estado seleccionada. Lo único que cambia es el Color de texto y el Color de sombra. Entonces el problema persiste ... – Smikey

+0

No pude encontrar un menú desplegable como se describe en la versión actual de Xcode. – ixany

+0

Con el botón seleccionado, abra el inspector de atributos y verá el menú desplegable etiquetado como "configuración de estado". (correcto para Xcode 8.2.1 al menos) – mbehan

27

También puede hacer:

button.adjustsImageWhenDisabled = NO; 
+9

¡De hecho, esta debería ser la respuesta correcta! – Raphael

Cuestiones relacionadas