2011-04-14 20 views
14

¿Es posible desactivar un UISwitch? No me refiero a ponerlo en estado desactivado, me refiero a deshabilitar la interacción del usuario y hacer que parezca gris.¿Cómo desactivo un UISwitch?

En mi aplicación tengo dos condiciones

if (condition == true) { 
    // UISwitch should be enabled 
} else { 
    // UISwitch should be visible, but disabled 
    // e.g uiswitch.enable=NO; 
} 

¿Alguna sugerencia?

Respuesta

35

Esto debe hacerlo:

switch.enabled = NO; 

o equivalentemente:

[switch setEnabled:NO]; 

donde switch es cualquiera que sea su nombre de variable UISwitch.

-6

[switchName enabled] = NO;

uso que para desactivar el conmutador.

EDITAR gracias a rckoenes: "No deberías intentar establecer una propiedad a través de getter. Debes usar el setter de la propiedad de sintaxis."

+0

gracias por la sugerencia – Pooja

+1

No debe intentar establecer una propiedad a través de getter. Deberías usar el setter de. propiedad de sintaxis – rckoenes

+0

disculpe, otra cosa que aprendí ^^ – Joetjah

8

Sí, puedes. UISwitch hereda de UIControl, y UIControl tiene una propiedad enabled. Apple's UIControl Documentation tiene todos los detalles.

Para permitir

switch.enabled = YES; 

Para desactivar

switch.enabled = NO; 
0

Para aquellos que buscan Swift 3,

switch.isEnabled = false // Disabled switch 

Sé que no pidió estado "apagado", pero sólo en caso de que alguien, como yo, topé aquí:

switch.isOn = false