Ios 在UIScrollView上捕获触摸

Ios 在UIScrollView上捕获触摸,ios,objective-c,uiscrollview,touch,Ios,Objective C,Uiscrollview,Touch,我尝试过使用PageViewerViewController以滚动模式浏览几页。就像中的另一个问题一样,所以(我似乎不觉得很难)我想抓住触感。因此,在viewdiload上,我搜索了该控制器中的视图,找到了scrollView,只是添加了一个tapesturerecognizer,但效果不太好,所以我添加了self作为其代理,并告诉他与其他gesturerecognizer>同时工作而且它工作得很好。问题是,当我尝试单击其中一个页面上的ui按钮时,它无法识别单击。当我同时将工作设置为off时,它

我尝试过使用
PageViewerViewController
滚动模式浏览几页。就像
中的另一个问题一样,所以
(我似乎不觉得很难)我想抓住触感。因此,在
viewdiload
上,我搜索了该控制器中的
视图,找到了
scrollView
,只是添加了一个
tapesturerecognizer
,但效果不太好,所以我添加了
self
作为其
代理
,并告诉他与其他
gesturerecognizer>同时工作而且它工作得很好。问题是,当我尝试单击其中一个页面上的
ui按钮时,它无法识别单击。当我同时将工作设置为off时,它突然工作正常。
我做错了什么?
更多信息:我想我在网上到处都遇到了以下问题,尝试从头开始编写代码,尝试更改代码,添加另一个
TapGestureRecognitor
到目前为止效果最好

我现在没有任何想法。任何建议都将不胜感激。多谢各位

为了进一步澄清,我试图在滚动模式下捕获
UIPageViewerViewController
上的所有touchStarted、touchMoved和touchEnded。我尝试将另一个
UICapgestureRecognitizer
添加到内部
UIScrollView
,添加到
UIScrollView
的超级视图,添加到添加了
UIPageViewServiceController
self.view
。当我同时移除工作时,我的UITapGestureRecognitor会随机停止工作。当我同时将working设置为work时,在启动另一个UIViewController之前,我无法单击任何
UIButton
。然后出于某种原因,它确实起作用了

编辑我只使用了3个页面,
UIScrollView
更好吗

我将所有内容都更改为一个UIScrollView,当我卸下UITapGesureRecognitor时,所有内容都工作正常,我收到了触摸,所有内容都运行平稳


除了添加到UIScrollView中的UITapGestureRecognitizer之外,还有其他方法可以捕获触摸吗?

您的按钮无法识别单击,因为TapGestureRecognitizer会拦截它们。您可以在tapGestureRecognizer具有主要优先级的位置设置更复杂的区域。尝试添加以下代码:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
    if (gestureRecognizer == yourTapGestureRecognizer) {
        return !CGRectContainsPoint(yourButton.frame, [gestureRecognizer locationInView:yourScrollView]);
    }
    return YES;
}

我认为对于您正在寻找的内容,UIView将比UIScrollView更好。如果您想获得所有的触摸事件,那么您可以实现自己的scrollview功能。通过UIView动画将UIView的原点设置为基于触摸结束位置的某个值,可以在
OnTouched:
中进行分页。这需要做一点工作,但可能比苹果想要在ScrollView中使用触摸事件时尝试将触摸事件发送到两个地方要容易得多。

Hi,我尝试实现该函数,但由于某些原因,GestureRecognitizer应该开始不是FiredYout TapGestureRecognitizer的目标是什么?一些从未被调用的函数,所以我将其留空。我在touchesBegin上做了所有的工作,直到touchesEnded,当我将UITapGestureRecognitizer子类化时,我询问了目标,但没有询问选择器。目标必须告诉我调用选择器的类(基本上是UIViewController)。我认为应该通过添加代码中最重要的部分来更新问题。现在我搞不清楚您到底使用了什么:)将UiScrollview子类化并实现相同的函数将不起作用?