2010-11-02 59 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. 
}