2016-01-29 38 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所回答的那樣,這兩個滾動視圖也同時滾動。 –