2015-10-20 54 views
0

當我點擊一個UIButton,一個UIView MyView從底部出現一個屏幕的三分之一。當我在這個視圖之外的某個地方點擊時,我會喜歡它,它會消失。添加一個UIGestureRecognizer優先於所有其他交互

我曾想過在MyView下添加另一個透明的UIView,並使用dismiss函數在其上添加了一個tab選項,但我確信有比這更乾淨的東西。

所以我想加入點擊手勢MyTapGesture關閉self.view上的MyView UIViewController。問題是,除了這個視圖之外,我還有其他UIControls和手勢,這些手勢也可以同時捕獲任何觸摸,而不是MyTapGesture。

我該如何讓MyTapGesture成爲MyView之外的優先級手勢,並忽略所有其他手勢,點擊等......?

+0

的人嗎? – Mukesh

+0

menas?是的,我在self.view的子視圖上有一個輕擊手勢。在這種情況下,兩者都被觸發。但是當我點擊一個UIButton時,只會觸發UIButton的水龍頭。 – Nico

+0

這個問題解決了嗎? –

回答

0

您可能需要使用手勢委託方法處理兩個tapGestureRecognizer激活你需要根據情況

#pragma mark - UIGestureRecognizerDelegate methods 
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { 

return YES; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    if ([tapGestureRecognizer1 isEqual:gestureRecognizer]) { 

    return [tapGestureRecognizer2 isEqual:otherGestureRecognizer]; 
    } 

if ([tapGestureRecognizer2 isEqual:gestureRecognizer]) { 

return [tapGestureRecognizer1 isEqual:otherGestureRecognizer]; 
} 

return NO; 
} 
你有兩個點觸手勢menas
+0

這意味着您需要爲每個UIGesture設置代理...好吧,讓我們說我這樣做,問題仍然是在UIButtons上點擊 – Nico

相關問題