在main.storyboard
中,我有一个枪按钮和一个盾牌按钮。假设两个按钮同时被点击(不完全相同但你知道我的意思)。
单击两个按钮后如何进行一个操作?就像在这种情况下,如果点击枪和盾,我想做一个标签说辩护。我要求的几乎就是我在视图控制器中的表现......
答案 0 :(得分:2)
这样的事情应该可以解决问题。将两个按钮连接到每个IBAction
,并确保控制事件onButtonDown:
触发.TouchDownInside
,onButtonUp:
和.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语句将为您调用。