2016-01-29 33 views
0

我有两个UIScrollViews。这两个滚动视图都包含一个图像。现在,我想以编程方式缩放第二个滚动视图,如果我手动放大第一个滚动视图。我正在使用 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView方法手动缩放第一个滚动视图。第二个滚动视图应放大到相同的点和缩放比例。我怎样才能做到这一点?同步放大两个UIScrollViews。

+0

提供一些代码,你的帮助做。 – riddhi

+0

不要带2个scrollViews。 以一个滚动视图和一个图像视图。 将ScrollView的缩放比例因子传递给UIImageView。 (如果你在这里放一些代码会更好。) –

回答

0

尝试像这样在UIScrollViewDelegate方法:

override func scrollViewDidScroll(scrollView: UIScrollView){ 
    otherScrollView.contentOffset = scrollView.contentOffset 
    otherScrollView.zoomScale = scrollView.contentOffset 
} 
+0

非常感谢。非常棒! –

+0

很好听。 请问您可以标记我的答案为解决方案:) –

0

通过使用这两个scrollviews的标签或物体可以识别哪些滚动查看您需要放大viewForZoomingInScrollView方法。

e.g

//need to set the tag for scrollviews 
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
if(scrollView.tag == 1) 
{ 
    return firstImageView; 
} 
return secondImageView; 

} 

OR 

//need to create the object of used scrollviews 
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
if(scrollView == objScrollViewFirst) 

{ 
    return firstImageView; 
} 
return secondImageView; 

} 
0

怎么是这样的:

CGRect zoomRect; 
zoomRect.size.height = manualScrollView.frame.size.height/manualScrollView.zoomScale; 
zoomRect.size.width = manualScrollView.frame.size.width/manualScrollView.zoomScale; 
zoomRect.origin.x = manualScrollView.center.x - (zoomRect.size.width/2.0); 
zoomRect.origin.y = manualScrollView.center.y - (zoomRect.size.height/2.0); 

[autoScrollView zoomToRect:zoomRect animated:YES]; 
[autoScrollView setZoomScale:manualScrollView.zoomScale animated:YES]; 
+0

谢谢。这是工作。但正如@David Williames所回答的那样,这两个滚动视图也同时滚动。 –