1

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

我只想在用户从上部 UIView 之一拖动时启用父滚动。

有什么想法吗?谢谢 !

4

2 回答 2

0

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

`-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

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

return [super hitTest:point withEvent:event];

}`

于 2013-07-13T13:33:52.093 回答
0

您可以尝试使用 touchesBegan: 检测用户触摸的位置,如果它在其中一个 UIView 内,那么您可以禁用所有子 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;
    }

然后在 touches end 方法中重新启用子 scrollViews 上的滚动。

于 2013-07-13T06:57:15.810 回答