如何在swift 2.x中使用“one IBAction for multiple buttons”上的按钮?

时间:2016-11-15 22:51:28

标签: ios swift2 xcode7

我正在xcode7.x上创建一个计算器应用程序,swift 2.x。

请告诉我们在为所有号码使用一个IBAction时如何显示不同的号码。

2 个答案:

答案 0 :(得分:1)

或以编程方式处理任意数量的按钮(注意:这是Swift 3.0)

func setUp() {
    var button1, button2: UIButton!

    let buttons = [button1, button2]

    for i in 0..<buttons.count {
        buttons[i]?.tag = i
    }

    buttons.forEach({ $0.addTarget(self, action: #selector(MyClass.myAction(_:)), for: .touchUpInside) })
}

func myAction(_ sender: UIButton) {
    print(sender.tag)
}

答案 1 :(得分:0)

  1. 在xib / storyboard中创建按钮

  2. 为每个数字设置tag属性(右侧是查看部分) enter image description here

  3. 从任意按钮按住Ctrl键拖动到您的班级

  4. 在弹出窗口中选择IBAction并输入名称 IBAction

  5. 实施方法:

  6. @IBAction func digitPressed(button: UIButton) {
        print("digit pressed: \(button.tag)")
    }
    

    P.S。我不建议对所有按钮使用相同的方法,仅适用于那些性质非常接近的按钮,如数字。如果您还有+ - * /按钮,则应为每个按钮添加其他IBAction。