2012-01-11 44 views
0

我創建了一個多用戶的項目,可以輕敲不同的按鈕。在UIButton上多次點擊並訪問按鈕的不同行爲

下面的問題可能會逐步, 我實現gestureRecognizer,它是適當的工作,但如何讓這些按鈕由用戶點擊該訪問這些按鈕事件的

下面的屏幕顯示按鈕,

enter image description here 以下爲gestureRecognizer委託方法的代碼,因此,如何讓按鈕事件以及如何管理它,

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ 

    if ([touch.view isKindOfClass:[UIButton class]]) { 
     NSLog(@"Button is pressed"); 
     if (tag == 1) { 
      NSLog(@"Button1 is pressed"); 
     } 
     return NO; 
    } 
    return YES; 
} 

爲IBAction爲方法,下面的方法來觸摸按鈕時,拍了拍

-(IBAction)btnPress:(id)sender{ 
    tag=[sender tag]; 
    NSLog(@"%i",tag); 
} 

但這裏的問題是首先調用gestureRecognizer委託方法則IBAction爲方法,如何解決這個問題,

預先感謝您寶貴的時間花在我的問題上,

Thaks和問候 Neon Samuel。

回答

1

如果該按鈕是UIButton的實例,那麼根本不需要使用gestureRecognizer。 嘗試設置addTarget:行動得到回調,當用戶單擊的UIButton:

[button1 addTarget:self action:@selector(btnPress:)]; 
[button2 addTarget:self action:@selector(btnPress:)]; 

如果您標記值已經被設置爲每一個按鈕,那麼你的IBAction爲方法將正常工作。

-(IBAction)btnPress:(id)sender{ 
NSInteger tag=[sender tag]; 
NSLog(@"%d",tag); 
} 
+0

但是在一次超過一次同時按下的情況下,它是否有效? – 2012-01-11 12:22:16

+0

當然,它會工作沒有任何問題! – 2012-01-11 12:24:06

+0

爲了更直觀,你可以測試哪個按鈕被點擊:if(sender == self.button1){...} else if(sender == self.button2){...} – 2012-01-11 12:27:08