我是新手,
本质上,我想做的就是按下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)
如果我将UIbutton的集合链接到插座集合, 如何在按下任何一个UIbutton时禁用它们?
答案 0 :(得分:1)
如果您只想禁用单击的按钮,那么您当然可以使用sender.isEnabled = false
。
如果您希望能够在单击任意按钮时禁用任何按钮,则可以tag
每个带有按钮的数字,以便可以从Attributes Inspector(朝底部)中对其进行识别:
因此每个按钮都可以分别标记为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
}
}