我有3个开关。我想要它,所以当一个打开另一个2关闭。UISwitch没有关闭?
我的代码目前看起来像这样。
if MPHSwitch.on {
KPHSwitch.enabled = false
MperSSwitch.enabled = false
}
我只是想关闭开关,但设置为启用false为灰色。
我试过KPHSwitch.off
但这似乎不起作用。
我有3个开关。我想要它,所以当一个打开另一个2关闭。UISwitch没有关闭?
我的代码目前看起来像这样。
if MPHSwitch.on {
KPHSwitch.enabled = false
MperSSwitch.enabled = false
}
我只是想关闭开关,但设置为启用false为灰色。
我试过KPHSwitch.off
但这似乎不起作用。
更改您的代码在你的条件如下:
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。
'KPHSwitch.setOn(on:false,animated animated:true)'? – Larme