Objective c 在UIScrollView中检测UIView上的触摸,最好禁用交互

Objective c 在UIScrollView中检测UIView上的触摸,最好禁用交互,objective-c,ios,xcode,cocoa-touch,uiscrollview,Objective C,Ios,Xcode,Cocoa Touch,Uiscrollview,我有一个UIScrollView,其中包含一些UIView。 我想做的是,当UIView被触摸/未被触摸时,捕捉触摸事件 我遇到的问题是,uicrollview似乎吞没了所有的触摸事件,尤其是如果您在UIView上按住太久 我希望UIScrollView在自动滚动时禁用用户交互 这可能吗 我尝试过对UIView进行子类化,但从未在其中调用过触摸事件。也许可以重新排序视图,以便应用程序能够识别与之关联的触摸识别器对象的视图。将其在文档大纲中移动到顶部(滚动视图)您可以将一个点击手势附加到您的滚动视

我有一个
UIScrollView
,其中包含一些
UIView
。 我想做的是,当UIView被触摸/未被触摸时,捕捉触摸事件

我遇到的问题是,
uicrollview
似乎吞没了所有的触摸事件,尤其是如果您在
UIView
上按住太久

我希望
UIScrollView
在自动滚动时禁用用户交互

这可能吗


我尝试过对
UIView
进行子类化,但从未在其中调用过触摸事件。

也许可以重新排序视图,以便应用程序能够识别与之关联的触摸识别器对象的视图。将其在文档大纲中移动到顶部(滚动视图)

您可以将一个
点击手势
附加到您的
滚动视图
,其中包含以下内容:

   UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureUpdated:)];
   tapGesture.delegate = self;
   tapGesture.numberOfTapsRequired = 1;
   tapGesture.numberOfTouchesRequired = 1;
   [self addGestureRecognizer:_tapGesture];

然后在
-(void)点击GestureUpdated:(UITapGestureRecognitizer*)点击手势
方法中,您有责任确定触摸的位置,并找出是否有人在其中一个子视图上拾取。然后,您可以对委托调用一个方法,通知已触及特定视图。

此方法是否只调用一次?如果time touch在UIView上,我需要长度,因此需要touchStart和touchEnd事件。TapSirture参数的状态为UIGestureRecognitizerStateStart或UIGestureRecognitizerStateEnd。我将使用此参数检测您感兴趣的两个触摸事件确保您阅读了TapSirth上的官方文档:谢谢,我会在早上尝试这种方法。我确实想到了这一点,但我认为很难将UIView移动到与卷轴相同的速度view@Darren嗯,UIButton设置为custom,alpha bg设置为0.0,怎么样?此外,如果添加UIView,它不一定要随UIScrollView一起移动。。。