2016-08-25 62 views
0

我有3个开关。我想要它,所以当一个打开另一个2关闭。UISwitch没有关闭?

我的代码目前看起来像这样。

if MPHSwitch.on { 
     KPHSwitch.enabled = false 
     MperSSwitch.enabled = false 
    } 

我只是想关闭开关,但设置为启用false为灰色。

我试过KPHSwitch.off但这似乎不起作用。

+2

'KPHSwitch.setOn(on:false,animated animated:true)'? – Larme

回答

2

更改您的代码在你的条件如下:

KPHSwitch.setOn(false, animated: true) //If you don't want animation, send animated parameter false 
MperSSwitch.setOn(false, animated: true) 

的问题是,你在这里使用了错误的性质,而不是供你应该使用的挂线法。

Apple Documentation on UISwitch

西顿(_:动画:)

将此开关设置为开或关的状态,可选动画的 过渡。

你正在做的是,你正在改变UIControl的操作能力,即Switch在这种情况下。

Apple Documentation on UIControl Class,这是启用什么呢:

将此属性设置为true的值,以使控制或假 禁用它。已启用的控件能够响应用户 交互,而禁用的控件会忽略触摸事件,并且可能会以不同的方式绘制自己。将此属性设置为false会将 UIControlStateDisabled标志添加到控件的状态位掩码;启用 该控件再次删除该标志。

您正在使UISwitch忽略触摸事件,然后使其重绘本身,从而将颜色更改为灰色。

所以在你的情况下,你必须使用setOn。