How do I disable a UISwitch?
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?
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
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;
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
[switchName enabled] = NO;
Use that to disable your switch.
EDIT thanks to rckoenes: "You should not try to set a property via getter. You should use either the setter of . syntax property."
精彩评论