UIScrollView通过在一帧内拖动来滚动

时间:2013-07-12 21:57:42

标签: ios uiscrollview

我有一个包含一堆子UIScrollViews的父UIScrollView,每个scrollview都可以在每个方向滚动。在每个孩子的顶部,有一个UIView,父母的子视图。

我想只在用户从上面的UIView中拖出时才启用父滚动。

有没有想过这样做?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用touchesBegan检测用户触摸的位置:如果它位于其中一个UIViews内,则可以禁用所有子scrollView的滚动(甚至交互)。所以在代码中:

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

        //check if touch is in one of the UIViews

        //if so disable child UIScrollView interaction like so:
        childScrollView.scrollEnabled = NO;
    }

然后在触摸结束方法中,只需重新启用子滚动视图滚动。

答案 1 :(得分:0)

好的,我终于找到了一些东西!通过覆盖父滚动视图的回调-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event

` - (UIView *)hitTest:(CGPoint)指向withEvent:(UIEvent *)事件 {

if (CGRectContainsPoint(myFrame, point))
{
    self.scrollEnabled = YES;
}
else
{
    self.scrollEnabled = NO;
}

return [super hitTest:point withEvent:event];

}`