在main.storyboard
中,我有一个枪按钮和一个盾牌按钮。假设两个按钮同时被点击(不是完全相同的时间,但你知道我的意思)。
如何在单击两个按钮后执行一个操作?就像在这个例子中,如果枪和盾牌被点击,我想做一个标签说辩护。我要问的是我怎么能在视图控制器中。。。
最佳答案
像这样的事情应该能解决问题。将两个按钮连接到每个IBAction
,并确保onButtonDown:
由控制事件.TouchDownInside
触发,并且onButtonUp:
由.TouchUpInside
和.TouchDragExit
同时触发。
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
语句以防止崩溃