0
我有一個按鈕和一個手勢識別,當按下按鈕時,只應調用一個方法。我有一個按鈕和一個手勢識別,當按下按鈕時,只應該調用一種方法
大多數情況下只有手勢識別被稱爲哪個很好,但是每個都沒有,然後按鈕被調用,導致問題。
我有一個視圖,然後滾動視圖。我的所有按鈕都在滾動視圖上
我有一個按鈕和一個手勢識別,當按下按鈕時,只應調用一個方法。我有一個按鈕和一個手勢識別,當按下按鈕時,只應該調用一種方法
大多數情況下只有手勢識別被稱爲哪個很好,但是每個都沒有,然後按鈕被調用,導致問題。
我有一個視圖,然後滾動視圖。我的所有按鈕都在滾動視圖上
您可以在視圖控制器中實現此功能,並將其分配給手勢識別器的代表。
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
CGPoint p = [gestureRecognizer locationInView:self.view];
UIView *view = [sefl.view hitTest:p withEvent:nil];
if ([view isKindOfClass:[UIButton class]]) {
return NO;
}
return YES;
}
,或者你可以用類似的邏輯實現- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
如果gestureRecognizerShouldBegin:
不適合。
非常感謝。對於像我這樣的初學者,你不知道如何在代碼中分配委託:[recognizer setDelegate:self];我知道它很糟糕,但我一直使用自動指派代理人的方式。我希望書籍和教程能夠這樣。 – user1898829 2013-02-09 12:26:45
只要'self'實現了'UIGestureRecognizerDelegate',[識別器setDelegate:self]就沒有什麼問題了。 – 2013-02-09 12:59:37