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

con*_*are 1 iphone cocoa-touch nested objective-c uiscrollview

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

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

con*_*are 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];
    }
}
Run Code Online (Sandbox Code Playgroud)