如何禁用 UISwitch?
这可以禁用 UISwitch 吗?我的意思并不是将其置于关闭状态,而是禁用用户交互,并将其显示为灰色。
在我的应用程序中我有两个条件
if (condition == true) {
// UISwitch should be enabled
} else {
// UISwitch should be visible, but disabled
// e.g uiswitch.enable=NO;
}
有什么建议吗?
Is this possible to disable a UISwitch? I do not mean putting it in an OFF state, I mean disabling user interaction, and having it appear gray.
In my app I have two conditions
if (condition == true) {
// UISwitch should be enabled
} else {
// UISwitch should be visible, but disabled
// e.g uiswitch.enable=NO;
}
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这应该可以做到:
或者等效地:
其中
switch
是您的UISwitch
变量名称。编辑于 2018 年 4 月 18 日
上面的答案(显然)是一个 Objective-C 解决方案,早在人们听说过 Swift 之前就已经写好了。当然,Swift 的等效解决方案是:
This should do it:
or equivalently:
where
switch
is whatever yourUISwitch
variable name is.Edit 18-Apr-2018
The answer above is (clearly) an Objective-C solution, written well before anyone had ever heard of Swift. The Swift equivalent solution is, of course:
是的,你可以。
UISwitch
继承自UIControl
,并且UIControl
有一个enabled
属性。 Apple 的 UIControl 文档 包含所有详细信息。启用
禁用
Yes you can.
UISwitch
inherits fromUIControl
, andUIControl
has anenabled
property. Apple's UIControl Documentation has all of the details.To enable
To disable
对于那些寻找 Swift 3 的人,
我知道您并没有要求“关闭”状态,但以防万一有人,比如我自己,偶然发现这里:
For those looking for Swift 3,
I know you didn't ask for "off" state, but just in case anybody, like myself, stumbled upon here :
[switchNameenabled] = NO;
使用它来禁用您的开关。
感谢 rckoenes 的编辑:“您不应该尝试通过 getter 设置属性。您应该使用 . 语法属性的 setter。”
[switchName enabled] = NO;
Use that to disable your switch.
EDIT thanks to rckoenes: "You should not try to set a property via getter. You should use either the setter of . syntax property."