如何禁用 UISwitch?

问题描述 投票:0回答:4

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

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

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

有什么建议吗?

iphone objective-c switch-statement uiswitch
4个回答
48
投票

这应该可以做到:

switch.enabled = NO;

或等价:

[switch setEnabled:NO];

其中

switch
是您的
UISwitch
变量名称。

编辑2018年4月18日

上面的答案(显然)是一个 Objective-C 解决方案,在人们听说过 Swift 之前就已经写好了。当然,Swift 的等效解决方案是:

switch.isEnabled = false

7
投票

是的,你可以。

UISwitch
继承自
UIControl
,并且
UIControl
具有
enabled
属性。 Apple 的 UIControl 文档 包含所有详细信息。

启用

switch.enabled = YES;

禁用

switch.enabled = NO;

5
投票

对于那些寻找 Swift 3 的人,

switch.isEnabled = false // Disabled switch

我知道你没有要求“关闭”状态,但以防万一有人,比如我自己,偶然发现这里:

switch.isOn = false

-6
投票

[switchName enabled] = NO;

用它来禁用你的开关。

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

© www.soinside.com 2019 - 2024. All rights reserved.