带有 UIScrollview 的 UITapgesture 不会停止滚动?

Posted

技术标签:

【中文标题】带有 UIScrollview 的 UITapgesture 不会停止滚动?【英文标题】:UITapgesture with UIScrollview not stop scrolling? 【发布时间】:2016-08-10 05:48:19 【问题描述】:

我遇到了问题,我不知道如何实现,请给我任何解决方案。

UIView ----UIScrollview ------Imageview(最少 10 个)

每个Imageview添加到scrollview中,每个ImageView都包含UITapgesture recongizer。Tapgesture用于获取图像并放大显示到Nextviewcontroller中。

这里我遇到了问题,当我滚动 UIScrollview 时,我想通过触摸滚动视图的内部或某处来停止滚动。如果我触摸任何地方,它就会进入下一页。

在页面中,如果 UIScrollview 正在滚动(用户当前没有触摸屏幕),然后用户点击屏幕,屏幕应该停止但不应该放大 Imageview。目前画面停止,但点击的图片正在放大中。

到目前为止的代码...

 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapAction:)];
        singleTap.numberOfTapsRequired = 1;
        singleTap.delegate = self;
        singleTap.cancelsTouchesInView = NO;
        hypeScroll.canCancelContentTouches = NO;


- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
    //return YES;

//    if (gestureRecognizer.view.superview.tag == hypeScroll.tag) 
//        return NO;
//    
    return YES;


给我解决办法,我卡了很久了,

提前致谢

【问题讨论】:

您的图像视图覆盖了整个滚动视图,还是有任何空间可以点击滚动视图? 是的,它覆盖了整个滚动视图。两个图像之间只有 2px 的空间.. 我建议UICollectionView来实现这种东西!! 【参考方案1】:

我认为 UICollectionView 会比依赖 UIScrollView 更有助于你实现这个功能。查看UICollectionView。

【讨论】:

感谢回复,但有一个逻辑需要使用 UIScrollview。

以上是关于带有 UIScrollview 的 UITapgesture 不会停止滚动?的主要内容,如果未能解决你的问题,请参考以下文章

带有 IUViewController 的 UIScrollView 拖放对象

带有 ViewControllers 的 UIScrollView

带有 UIScrollView 的纯自动布局

带有 UIScrollView 的 ECSlidingViewController

带有 UIScrollView 的 UIPanGestureRecognizer

带有背景图像的 UIScrollView