Theres是一个广泛的UIScrollView(我们称之为wideScroll),里面是较小的UIScrollViews(称之为singleScrollViews)。每个SingleScrollView中都有一个UIView,它包含两个不同的UIImageViews。
我需要使用wideScroll的滚动委托,以及缩放singleScrollViews的委托。
我是怎么做的,我在wideScroll类中使用UIScrollView委托,当一个缩放事件发生时,我在方法中返回所需的singleScrollView的UIView的指针;
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
//here i determine "int someint" according to current page.
SingleScrollView *b = (SingleScrollView *)[wideScrollView viewWithTag:someint];
return ((UIView *)[b viewWithTag:WRAPPERVIEW_TAG]);
}
当我这样做时,单个singleScrollViews的缩放工作正常,除了一件事,即, 当singleScrollView达到其maximumZoomScale时,缩放结束,但在调用“scrollViewDidEndZooming”方法之前,最后一次调用“scrollViewDidZoom”,并将UIView的内容偏移设置为(0,0),使图像滚动到左上角。 / p>
相反,当我在没有达到maximumZoomScale的情况下放大时,UIView会保持在缩放的位置,而不是滚动到顶部或其他任何位置。
此外,当我在缩放时达到maximumZoomScale时,“ - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView”方法被调用三次。
任何想法?
解决方法: 我将maximumzoomcale设置为2.01,当singleScrollView.ZoomScale为> 2.00,我在ScrollViewDidZoom delegeta方法的开头将其设置回2.00。
答案 0 :(得分:0)
看看photoscroller示例示例。并且您需要为每个单独的scrollview单独实现viewForZooming。这是更好的实现方法。并覆盖layoutSubview方法并根据您的滚动视图缩放比例设置其中的imageview中心