2010-11-02 91 views
0

好吧,我敢肯定,这个问题有一个简单的解决方案。我有四个IBActions,上,下,左,右。我只希望执行一个动作而使其他三个动作可用,例如如果我按下,只能按下,左右按下,所以我不能连续按两次相同的动作。其他行为也是如此,例如我只能向左按一次,然后按右,下或上的动作。如果有人知道解决这个问题,我将不胜感激。谢谢!iPhone禁用按钮,被挖掘

回答

5

保留一组按钮,然后在您的各种处理程序上,您将设置它们全部启用,除了被点击的那个。例如:

- (IBAction)up { 
    for(UIButton *button in self.allButtons) { 
     [button setEnabled:YES]; 
    } 

    [self.upButton setEnabled = NO]; 
} 
+0

谢谢BEn ... !!! – Michael 2010-11-02 17:55:03

0
[self.yourButton addTarget:self action:@selector(yourAction) forControlEvents:UIControlEventTouchUpInside]; 

- (void)yourAction 
{ 
    [self.yourButton setEnabled:NO]; 
} 
0

我喜欢Ben Scheiman在他的关于有按钮的排列答案的想法,但不是有每个按钮的方法会更有意义,只是有一个方法无论您按哪个按钮,都可以做到这一点。另外,我并不是100%确定他的代码的最后一行是正确的。所以一个更干净的方法来做到这一点将是:

// Probably the biggest difference is I have added a parameter that will be the button. 
- (IBAction)directionalButtonLock:(id)sender 
{ 
    // Credit to Ben Scheiman's answer here. 
    for (UIButton *button in [self allButtons]) { 
     [button setEnabled:YES]; 
    } 
    [sender setEnabled:NO]; // Disable the pressed button. 
}