How do I disable a UISwitch?
Solution 1
This should do it:
switch.enabled = NO;
or equivalently:
[switch setEnabled:NO];
where switch
is whatever your UISwitch
variable name is.
Edit 18-Apr-2018
The answer above is (clearly) an Objective-C solution, written well before anyone had ever heard of Swift. The Swift equivalent solution is, of course:
switch.isEnabled = false
Solution 2
Yes you can. UISwitch
inherits from UIControl
, and UIControl
has an enabled
property. Apple's UIControl Documentation has all of the details.
To enable
switch.enabled = YES;
To disable
switch.enabled = NO;
Solution 3
For those looking for Swift 3,
switch.isEnabled = false // Disabled switch
I know you didn't ask for "off" state, but just in case anybody, like myself, stumbled upon here :
switch.isOn = false
Related videos on Youtube
Pooja
Updated on April 19, 2020Comments
-
Pooja about 4 years
Is this possible to disable a UISwitch? I do not mean putting it in an OFF state, I mean disabling user interaction, and having it appear gray.
In my app I have two conditions
if (condition == true) { // UISwitch should be enabled } else { // UISwitch should be visible, but disabled // e.g uiswitch.enable=NO; }
Any suggestions?
-
rckoenes about 13 yearsYou should not try to set a property via getter. You should use either the setter of . syntax property.