Swift - 如果按下2个按钮,如何进行一个操作?

时间:2015-06-13 21:54:50

标签: xcode swift

main.storyboard中,我有一个枪按钮和一个盾牌按钮。假设两个按钮同时被点击(不完全相同但你知道我的意思)。

单击两个按钮后如何进行一个操作?就像在这种情况下,如果点击枪和盾,我想做一个标签说辩护。我要求的几乎就是我在视图控制器中的表现......

2 个答案:

答案 0 :(得分:2)

这样的事情应该可以解决问题。将两个按钮连接到每个IBAction,并确保控制事件onButtonDown:触发.TouchDownInsideonButtonUp:.TouchUpInside触发.TouchDragExit {1}}。

class ViewController : UIViewController {

    var buttonsPressed: [UIButton] = []

    // Triggered by .TouchDownInside
    @IBAction func onButtonDown( sender: UIButton ) {
        self.buttonsPressed.append( sender )

        if self.buttonsPressed.count == 2 {
            // Both buttons are pressed
        }
    }

    // Triggered by .TouchUpInside and .TouchDragExit
    @IBAction func onButtonUp( sender: UIButton ) {
        for i in 0..<self.buttonsPressed.count {
            if self.buttonsPressed[i] == sender {
                self.buttonsPressed.removeAtIndex( i )
                break
            }
        }
    }
}

更新: 在循环中添加break语句以防止崩溃

答案 1 :(得分:0)

我会在每个按钮逻辑中添加一个语句。例如,在屏蔽按钮中,我会添加类似“如果枪是活动的显示标签”,并且还向枪逻辑添加类似的声明“如果屏蔽是活动的显示标签”。您可能需要使用特定于盾牌或枪支行动的值,例如“如果盾牌值== 50”。如果您计划使用多个组合并创建一个公共操作,您可以更进一步,每个if语句将为您调用。