如何禁用UISwitch?

时间:2011-04-14 13:44:57

标签: iphone objective-c switch-statement uiswitch

这可以禁用UISwitch吗?我并不是说将其置于关闭状态,我的意思是禁用用户交互,并使其显示为灰色。

在我的应用中,我有两个条件

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

有什么建议吗?

4 个答案:

答案 0 :(得分:41)

这应该这样做:

switch.enabled = NO;

或等效地:

[switch setEnabled:NO];

其中switch是您的UISwitch变量名称。

编辑2018年4月18日

上面的答案(显然)是一个Objective-C解决方案,在任何人听说过Swift之前写得很好。当然,Swift等效解决方案是:

switch.isEnabled = false

答案 1 :(得分:7)

是的,你可以。 UISwitch继承自UIControlUIControl具有enabled属性。 Apple's UIControl Documentation包含所有细节。

启用

switch.enabled = YES;

禁用

switch.enabled = NO;

答案 2 :(得分:2)

对于那些寻找Swift 3的人来说,

switch.isEnabled = false // Disabled switch

我知道你并没有要求“关闭”状态,但万一有人像我一样偶然发现:

switch.isOn = false

答案 3 :(得分:-6)

[switchName enabled] = NO;

用它来禁用你的开关。

编辑感谢rckoenes:“你不应该尝试通过getter设置属性。你应该使用。语法属性的setter。”