0

我是 swift 新手,
基本上我想要做的是在按下 UI 按钮后,我希望它被禁用。

当单个 UIbutton 仅链接到插座而不是插座集合时,我知道如何禁用 UIbutton。

带插座:

我只是列出单个按钮并在按下时禁用它们

@IBAction func NumButton1(_ sender: UIButton) 

{
        pressButton(outputnumber: "1", with: 1, on: sender)
        button1.isEnabled = false
}

@IBAction func NumButton3(_ sender: UIButton) 

{
        pressButton(outputnumber: "3", with: 3, on: sender)
        button2.isEnabled = false
}

...


@IBAction func NumButton9(_ sender: UIButton) 

{
        pressButton(outputnumber: "9", with: 9, on: sender)
        button3.isEnabled = false
}

带出口收集:

@IBAction func NumButton(_ sender: UIButton) 

{
        let buttonNumber = buttons.index(of: sender)!

        let randomNumber = buttons.index(of: sender)!

        pressButton(outputnumber: numberDisplayed[buttonNumber], with: numberGuessed[randomNumber], on: sender)

如果我将 UIbuttons 集合链接到 outlet 集合,当按下其中任何一个 UIbutton 时,如何禁用任何 UIbutton?

4

1 回答 1

1

如果您只想禁用单击的按钮,当然您可以使用sender.isEnabled = false.

如果您希望能够在单击任意按钮时禁用任意按钮,那么您可以tag从属性检查器(朝向底部)中为每个按钮添加一个数字以便可以识别它:

在此处输入图像描述

因此,每个按钮都可以单独标记为 0、1、2、3、4 等。然后在您的操作中,您可以参考标记号:

    @IBAction func myButtonPressed(_ sender: UIButton) {
        print("button pressed, with tag: \(sender.tag)")
    }

您可以使用以下方式通过其标签找到任何按钮:

    func findButton(withTag: Int) -> UIButton? {
        return myButtonCollection.first { (btn) -> Bool in
            btn.tag == withTag
        }
    }
于 2019-05-09T05:17:26.737 回答