Ios UIScrollView';在一个框架内拖动滚动
我有一个父UIScrollView,其中包含一堆子UIScrollView,每个scrollview都可以向各个方向滚动。在每个子视图的顶部,都有一个UIView,即父视图的子视图 我只想在用户从上视图之一拖动时启用父级滚动Ios UIScrollView';在一个框架内拖动滚动,ios,uiscrollview,Ios,Uiscrollview,我有一个父UIScrollView,其中包含一堆子UIScrollView,每个scrollview都可以向各个方向滚动。在每个子视图的顶部,都有一个UIView,即父视图的子视图 我只想在用户从上视图之一拖动时启用父级滚动 有这样做的想法吗?谢谢 您可以尝试使用touchsbegind检测用户正在触摸的位置:如果它在其中一个UIView中,则可以禁用所有子ScrollView的滚动(甚至交互)。因此,在代码中: -(void)touchesBegan:(NSSet *)touches
有这样做的想法吗?谢谢 您可以尝试使用touchsbegind检测用户正在触摸的位置:如果它在其中一个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;
}
然后在触摸结束的方法中,在子滚动视图上重新启用滚动。好的,我终于找到了一些东西!通过覆盖父scrollview的回调
-(UIView*)hitTest:(CGPoint)pointwithevent:(UIEvent*)event
`-(UIView*)hitTest:(CGPoint)point with event:(UIEvent*)event
{
}`这正是我正在寻找的解决方案,但不幸的是,当我滚动时,touchesbeent:没有被调用。
if (CGRectContainsPoint(myFrame, point))
{
self.scrollEnabled = YES;
}
else
{
self.scrollEnabled = NO;
}
return [super hitTest:point withEvent:event];