我有一个带有嵌套UIImageViews的UIScrollView。每个图像视图都可以缩放,但是当我在放大图像时尝试滚动内部滚动视图时,外部滚动视图会将其拾取并切换图像视图。
如何防止这种情况发生,以便外部滚动视图仅在内部未缩放时滚动?
答案 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];
}
}