限制在 UIScrollView 上识别的触摸

Posted

技术标签:

【中文标题】限制在 UIScrollView 上识别的触摸【英文标题】:Limit touches recognized on UIScrollView 【发布时间】:2012-10-22 14:11:43 【问题描述】:

我正在尝试限制 UIScrollView 上识别的触摸次数,因为它正在使用另一个需要多次触摸的手势执行。如果触摸次数大于 1,我不希望触发平移和滑动手势。但我没有成功。

我已经继承了 UIScrollView 并覆盖了明显的方法,但是 numberOfTouches 总是返回 1?

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

    if (gestureRecognizer.numberOfTouches > 1) 
    
        return NO;
       
    return YES;

【问题讨论】:

【参考方案1】:

也许您可以执行以下操作?

for(UIGestureRecognizer* gr in _scrollview.gestureRecognizers)

    if([gr respondsToSelector:@selector(setMaximumNumberOfTouches:)])
    
        gr.maximumNumberOfTouches = 1;
    

不需要对滚动视图进行子分类,您可以在视图控制器的viewDidLoad 中执行此操作。

【讨论】:

恐怕不行。它为 UIScrollViewPanGestureRecognizer 设置了它,但仍然响应多个触摸:(

以上是关于限制在 UIScrollView 上识别的触摸的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView下的UIButton没有响应触摸

UIScrollView之isTracking delaysContentTouches canCancelContentTouches

UIScrollView 一个分页器

UIScrollview 限制滑动区域

UIScrollview 窃取触摸事件

UIButton 没有响应嵌套在另一个 UIScrollView 中的 UIScrollView 中的触摸