开发者

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."

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜