我在我的用戶界面上放置了一個透明的UIView
以檢測輕擊手勢。我的UI中還有一些需要保持活動的UIButton
。將UITapGestureRecognizer放置在UIButton上方時誰贏了?
透明視圖下方的UIButton
是否與UITapGestureRecognizer
衝突?
我在我的用戶界面上放置了一個透明的UIView
以檢測輕擊手勢。我的UI中還有一些需要保持活動的UIButton
。將UITapGestureRecognizer放置在UIButton上方時誰贏了?
透明視圖下方的UIButton
是否與UITapGestureRecognizer
衝突?
我想爲我的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。
您是否將按鈕放在透明視圖或透明視圖下? – Jayaraj
最好的方法是自己嘗試一下,恕我直言。 – Mazyod
如果您將視圖放在另一個視圖的前面,那麼它將攔截觸摸。你可以繼承UIView並攔截「 - (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event'來觸發另一個元素。 –
@Mazyod我嘗試過,但我從來沒有想到按鈕勝過TapRecognizer(請參閱我自己的答案)。所以看起來我不得不去定義一個視圖,其中的Tap Gesture Recognizer將被激活。 – Besi