2012-08-31 35 views
1

我在我的用戶界面上放置了一個透明的UIView以檢測輕擊手勢。我的UI中還有一些需要保持活動的UIButton將UITapGestureRecognizer放置在UIButton上方時誰贏了?

透明視圖下方的UIButton是否與UITapGestureRecognizer衝突?

+2

最好的方法是自己嘗試一下,恕我直言。 – Mazyod

+0

如果您將視圖放在另一個視圖的前面,那麼它將攔截觸摸。你可以繼承UIView並攔截「 - (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event'來觸發另一個元素。 –

+0

@Mazyod我嘗試過,但我從來沒有想到按鈕勝過TapRecognizer(請參閱我自己的答案)。所以看起來我不得不去定義一個視圖,其中的Tap Gesture Recognizer將被激活。 – Besi

回答

1

我想爲我的TapRegocnizer所有選項,這是結論:

C B E 
     Recognizer and Buttons react 
    x Recognizer and Buttons react 
    x Only Recognizer works 
    x x Only Recognizer works 
x  Only Recognizer works 
x x Only Recognizer works 
x x Only Recognizer works 
x x x Only Recognizer works 

Legend: 
C: Canceled in View 
B: Delayed Begin 
D: Delayed End 

它看起來像如果它的下面一個按鈕的TapRecognizer總是甚至觸發。如果既沒有設置Canceled in View也沒有設置Delayed Begin選項,該按鈕將被激活。所以要回答我的問題,按鈕從來沒有勝過TapRecognizer。

+0

您是否將按鈕放在透明視圖或透明視圖下? – Jayaraj