【问题标题】:Issue regarding UIScrollView as a subivew of a UIPanGesture-enabled view关于 UIScrollView 作为启用 UIPanGesture 的视图的子视图的问题
【发布时间】:2013-05-19 02:03:58
【问题描述】:

这是场景:

我有一个 scrollView 作为添加了 UIPanGestureRecognizer 的视图的子视图。平移手势仅适用于一个方向,比如说从左到右。

我想要实现的是:如果 scrollView.contentOffset.x == 0 并且用户从左到右平移,我希望 PanGesture 工作,否则我想让 scrollView 像往常一样工作。

我试过了

  • 在 scrollView 的超级视图上实现 hitTest:withEvent:,我可以在其中检查 contentOffset,但没有关于手势方向的数据。
  • 在滚动视图中实现touchesShouldBegin:withEvent:inContentView:,但同样没有方向数据。

问题似乎出在时刻,如果我想在视图处理手势事件后进行这种检查,则没有机会取消它并将事件重新发送到另一个视图。

有解决办法吗? 提前致谢!

【问题讨论】:

    标签: ios objective-c cocoa-touch uiscrollview uipangesturerecognizer


    【解决方案1】:

    为你添加到超级视图的 UIPanGestureRecognizer 设置一个委托并实现

    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { 
        if(scrollView.contentOffset.x != 0){
            return NO;
        }
    
        return YES;
    }
    

    【讨论】:

    • 感谢您的回答,但我相信这是 PanGesture 使滚动视图的交互无效的情况的解决方案......我的情况正好相反。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多