我想在iOS上禁用按钮(UIButton
)被点击之后。我是新来的iOS开发,但我认为客观上相当于代码 - C是这样的:
button.enabled = NO;
但我不能这样做对迅速。
如果您希望按钮没有“压”的样子留静:
// Swift 2
editButton.userInteractionEnabled = false
// Swift 3
editButton.isUserInteractionEnabled = false
记得:
1)您IBOutlet
是 - > @IBOutlet weak var editButton: UIButton!
2)将上述代码放在viewWillAppear
我这样做的方法如下:
@IBAction func pressButton(sender: AnyObject) {
var disableMyButton = sender as? UIButton
disableMyButton.enabled = false
}
该IBAction为连接到你的故事板按钮。
如果你有你的按钮设置为一个出口:
@IBOutlet weak var myButton: UIButton!
然后,你可以通过访问启用属性。符号按钮名称:
myButton.enabled = false
禁用斯威夫特3按钮:
yourButton.isEnabled = false
对于那些谁用Google搜索“禁用按钮”,但可能有更多细致入微的使用情况:
与视觉效果禁用:正如其他人所说,这将防止按下按钮,系统将自动使它看起来禁用:
yourButton.isEnabled = false
禁用无视觉效果:你的情况下用一个按钮,它应该看起来正常,但没有反应,倒是表现喜欢按钮?尝试这个!
yourButton.userInteractionEnabled = false
隐藏而不禁用:这种方法隐藏按钮没有禁用它(看不见的,但仍然可以挖掘):
yourButton.alpha = 0.0
删除:这将完全删除的观点:
yourButton.removeFromSuperView()
点击东西按钮后面:有两个按钮堆叠和你想要的顶部按钮暂时像它的不存在?如果您将不再需要上面的按钮,将其删除。如果你将再次需要它,尝试其凝结高度或宽度为0!
您可以启用/使用isEnabled
或isUserInteractionEnabled
财产禁用按钮。
两者之间的区别是:
isEnabled
是UIControl(超类的UIButton的)的属性和它具有的视觉效果(即灰色)的使能/禁止isUserInteractionEnabled
是UIView的(超类UIControl的)的特性,并且具有无视觉效果虽然但达到目的使用方法:
myButton.isEnabled = false // Recommended approach
myButton.isUserInteractionEnabled = false // Alternative approach
比方说,在斯威夫特4你有一个按钮可以设置为赛格瑞因为这样IBAction
的@IBAction func nextLevel(_ sender: UIButton) {}
,你有你的应用程序中发生的(即一个计时器,游戏等)的其他行动。而不要禁用SEGUE按钮,你可能想给你的用户使用的是SEGUE而其他操作仍然存在,并没有崩溃应用程序的选项。这是如何做:
var appMode = 0
@IBAction func mySegue(_ sender: UIButton) {
if appMode == 1 { // avoid crash if button pressed during other app actions and/or conditions
let conflictingAction = sender as UIButton
conflictingAction.isEnabled = false
}
}
请注意,您将有可能if appMode == 0
和/或if appMode == 1
内的其他条件仍将发生,并与mySegue
键不冲突。因此,避免崩溃。
该按钮可以在夫特4由代码被禁用
@IBAction func yourButtonMethodname(sender: UIButon) {
yourButton.isEnabled = false
}