Cocoa touch 将UIAPTgestureRecognitor放置在UIButton上方时,谁获胜?

Cocoa touch 将UIAPTgestureRecognitor放置在UIButton上方时,谁获胜?,cocoa-touch,uiview,uigesturerecognizer,Cocoa Touch,Uiview,Uigesturerecognizer,我将一个透明的UI视图放在我的UI顶部,以检测点击手势。我的UI中还有一些UI按钮s需要保持活动状态 透明视图下方的ui按钮是否与ui动作识别器冲突 我尝试了TapreGoNizer的所有选项,结论如下: C B E Recognizer and Buttons react x Recognizer and Buttons react x Only Recognizer works x x Only Recognizer works x On

我将一个透明的
UI视图
放在我的UI顶部,以检测点击手势。我的UI中还有一些
UI按钮
s需要保持活动状态


透明视图下方的
ui按钮
是否与
ui动作识别器
冲突

我尝试了TapreGoNizer的所有选项,结论如下:

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

看起来,即使下面有一个按钮,TapRecognitor也会一直被触发。如果视图中未设置
取消
延迟开始
选项,则该按钮将被激活。因此,为了回答我的问题,按钮永远不会胜过TapRecognitor。

我尝试了TapRegoNizer的所有选项,得出以下结论:

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

看起来,即使下面有一个按钮,TapRecognitor也会一直被触发。如果视图中未设置
取消
延迟开始
选项,则该按钮将被激活。因此,要回答我的问题,按钮永远不会胜过TapRecognitor。

最好的方法是自己尝试,IMHO。如果你将一个视图放在另一个视图前面,它将拦截触摸。您可以将UIView子类化并截获
-(id)hitTest:(CGPoint)point with event:(UIEvent*)event
,以将触碰传递给另一个元素。@Mazyod我确实尝试过,但我从未设法使按钮赢得TapRecognitor(请参见我自己的答案)。因此,看起来我必须定义一个视图,点击手势识别器将在其中激活。最好的方法是自己尝试,IMHO。如果你将一个视图放置在另一个视图之前,它将拦截触摸。您可以将UIView子类化并截获
-(id)hitTest:(CGPoint)point with event:(UIEvent*)event
,以将触碰传递给另一个元素。@Mazyod我确实尝试过,但我从未设法使按钮赢得TapRecognitor(请参见我自己的答案)。因此,看起来我必须定义一个视图,点击手势识别器将在该视图中激活。您是将按钮放置在透明视图上还是透明视图下?您是将按钮放置在透明视图上还是透明视图下?