嵌套的UISCrollViews - 防止父Scrollview在放大子项时滚动

时间:2009-06-18 02:29:09

标签: iphone objective-c cocoa-touch uiscrollview nested

我有一个带有嵌套UIImageViews的UIScrollView。每个图像视图都可以缩放,但是当我在放大图像时尝试滚动内部滚动视图时,外部滚动视图会将其拾取并切换图像视图。

如何防止这种情况发生,以便外部滚动视图仅在内部未缩放时滚动?

1 个答案:

答案 0 :(得分:5)

我会发布我的答案,我必须努力帮助其他人。

处理嵌套UIScrollViews的一种简单方法是共享同一个委托。这样,当您检测到一个UIScrollView滚动时,您可以轻松共享控制器逻辑并将设置应用于另一个。

解决我遇到的这个特殊问题,我所要做的就是保持BOOL当前的缩放状态。一旦应用程序检测到内部滚动视图正在缩放,

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView1 {
    return [innerScrollViews objectAtIndex:[self indexOfComicViewWithOffset:currentOffset]];    
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView1 withView:(UIView *)view atScale:(float)scale {
    if (scale == 1) {
        zooming = NO;
        [outerScrollView setScrollEnabled:YES];
    } else {
        zooming = YES;
        [outerScrollView setScrollEnabled:NO];
    }
}