禁用按钮

问题描述 投票:74回答:7

我想在iOS上禁用按钮(UIButton)被点击之后。我是新来的iOS开发,但我认为客观上相当于代码 - C是这样的:

button.enabled = NO;

但我不能这样做对迅速。

swift uibutton ios8
7个回答
175
投票

对于NO斯威夫特布尔值false

button.isEnabled = false

应该这样做。

HereUIControlisEnabled财产雨燕文档。


34
投票

如果您希望按钮没有“压”的样子留静:

// Swift 2
editButton.userInteractionEnabled = false 

// Swift 3
editButton.isUserInteractionEnabled = false 

记得:

1)您IBOutlet是 - > @IBOutlet weak var editButton: UIButton!

2)将上述代码放在viewWillAppear


10
投票

我这样做的方法如下:

@IBAction func pressButton(sender: AnyObject) {
    var disableMyButton = sender as? UIButton
    disableMyButton.enabled = false
}

该IBAction为连接到你的故事板按钮。

如果你有你的按钮设置为一个出口:

    @IBOutlet weak var myButton: UIButton!

然后,你可以通过访问启用属性。符号按钮名称:

    myButton.enabled = false

6
投票

禁用斯威夫特3按钮:

yourButton.isEnabled = false

1
投票

对于那些谁用Google搜索“禁用按钮”,但可能有更多细致入微的使用情况:

与视觉效果禁用:正如其他人所说,这将防止按下按钮,系统将自动使它看起来禁用:

yourButton.isEnabled = false 

禁用无视觉效果:你的情况下用一个按钮,它应该看起来正常,但没有反应,倒是表现喜欢按钮?尝试这个!

yourButton.userInteractionEnabled = false

隐藏而不禁用:这种方法隐藏按钮没有禁用它(看不见的,但仍然可以挖掘):

 yourButton.alpha = 0.0

删除:这将完全删除的观点:

 yourButton.removeFromSuperView()

点击东西按钮后面:有两个按钮堆叠和你想要的顶部按钮暂时像它的不存在?如果您将不再需要上面的按钮,将其删除。如果你将再次需要它,尝试其凝结高度或宽度为0!


0
投票

您可以启用/使用isEnabledisUserInteractionEnabled财产禁用按钮。

两者之间的区别是:

  • isEnabled是UIControl(超类的UIButton的)的属性和它具有的视觉效果(即灰色)的使能/禁止
  • isUserInteractionEnabled是UIView的(超类UIControl的)的特性,并且具有无视觉效果虽然但达到目的

使用方法:

myButton.isEnabled = false // Recommended approach

myButton.isUserInteractionEnabled = false // Alternative approach

0
投票

比方说,在斯威夫特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键不冲突。因此,避免崩溃。


0
投票

该按钮可以在夫特4由代码被禁用

@IBAction func yourButtonMethodname(sender: UIButon) {
 yourButton.isEnabled = false 
}
© www.soinside.com 2019 - 2024. All rights reserved.