禁用按钮

时间:2014-08-27 10:22:20

标签: swift uibutton ios8

我想点击iOS后禁用按钮(UIButton)。我是iOS的新手,但我认为目标上的等效代码是C:

button.enabled = NO;

但是我无法迅速做到这一点。

10 个答案:

答案 0 :(得分:164)

Swift中NO的布尔值为false

button.isEnabled = false

应该这样做。

HereUIControl isEnabled属性的Swift文档。

答案 1 :(得分:33)

如果您希望按钮在没有“按下”外观的情况下保持静止:

// Swift 2
editButton.userInteractionEnabled = false 

// Swift 3
editButton.isUserInteractionEnabled = false 

记住:

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

2)上面的代码进入viewWillAppear

答案 2 :(得分:9)

我这样做的方式如下:

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

IBAction已连接到故事板中的按钮。

如果您将按钮设置为插座:

    @IBOutlet weak var myButton: UIButton!

然后,您可以使用以下命令访问已启用的属性。按钮名称上的表示法:

    myButton.enabled = false

答案 3 :(得分:5)

禁用Swift 3上的按钮:

yourButton.isEnabled = false

答案 4 :(得分:0)

可以通过代码

在Swift 4中禁用该按钮
name

答案 5 :(得分:0)

您可以使用isEnabledisUserInteractionEnabled属性启用/停用按钮。

两者之间的区别是:

  • isEnabled是UIControl(超级UIButton)的属性,具有启用/禁用的视觉效果(即灰显)

  • isUserInteractionEnabled是UIView(UIControl的超级类)的属性,虽然达到了目的但没有视觉效果

用法:

myButton.isEnabled = false // Recommended approach

myButton.isUserInteractionEnabled = false // Alternative approach

答案 6 :(得分:0)

比方说,在Swift 4中,您为IBAction设置了一个按钮,像@IBAction func nextLevel(_ sender: UIButton) {}这样 并且您的应用中还有其他动作(例如计时器,gamePlay等)。您可能希望让用户选择在其他动作仍在发生时不崩溃应用时使用该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按钮发生冲突。因此,避免崩溃

答案 7 :(得分:0)

对于那些用Google搜索“禁用按钮”但可能会有更细微差别的用例的人:

以视觉效果禁用:如其他人所说,这将防止按下按钮,并且系统会自动使其看起来已禁用:

jquery.raty.js

在没有视觉效果的情况下禁用:您是否在按钮应该看起来正常但对触摸的反应不像按钮的情况下使用按钮?试试吧!

yourButton.isEnabled = false 

隐藏而不禁用:此方法隐藏按钮而不禁用按钮(不可见,但仍然可以点按):

yourButton.userInteractionEnabled = false

删除::这将完全删除视图:

 yourButton.alpha = 0.0

在按钮后面点击一些东西:堆叠了两个按钮,您想让顶部按钮暂时不显示吗?如果您不再需要顶部按钮,请将其删除。如果再次需要它,请尝试将其高度或宽度压缩为0!

答案 8 :(得分:0)

为了使它起作用:

yourButton.isEnabled = false

除了UI按钮之外,您还需要创建一个插座。

答案 9 :(得分:0)

Swift 5 / SwiftUI

如今,它是这样完成的。

Button(action: action) {
  Text(buttonLabel)
}
  .disabled(!isEnabled)