如何禁用UISwitch?

Poo*_*oja 18 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;  
} 
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Mar*_*off 42

这应该这样做:

switch.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

或等效地:

[switch setEnabled:NO];
Run Code Online (Sandbox Code Playgroud)

switch你的UISwitch变量名称在哪里.

编辑2018年4月18日

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

switch.isEnabled = false


odr*_*drm 7

是的你可以.UISwitch继承自UIControl,并UIControl拥有enabled财产.Apple的UIControl文档包含所有细节.

为了使

switch.enabled = YES;
Run Code Online (Sandbox Code Playgroud)

要禁用

switch.enabled = NO;
Run Code Online (Sandbox Code Playgroud)


KMC*_*KMC 5

对于那些正在寻找 Swift 3 的人,

switch.isEnabled = false // Disabled switch
Run Code Online (Sandbox Code Playgroud)

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

switch.isOn = false
Run Code Online (Sandbox Code Playgroud)