2011-10-26 162 views
0

我有一個圖像與多個部分。我會嘗試用下圖解釋:限制uiscrollview滾動區域

--|----------|---------|--- 
    | 1  | 2  | 
    |   |   | 
--|----------|---------|--- 
    | 3  | 4  | 
    |   |   | 
--|----------|---------|--- 

在上面的圖中,1,2,3和4是大圖的部分。我在UIScrollView中使用UIImageView。我一次向用戶展示一部分內容。所以看起來像這些部分是個人圖像。如果我正在顯示第3部分,我隱藏了圖像的所有部分,但是第3部分並更改了圖像座標,使得第3部分出現在屏幕中間。直到現在,一切工作正常。現在我需要對這些部分進行縮放。放大部分後,用戶將只能在部分內滾動,並且不允許在縮放部分之外滾動。我無法實現這個東西,就好像我設置了uiscrollview的contentoffset和contentize屬性,它將圖像從屏幕中取出。

有人可以建議我如何實現這個?

下面是我用來定位滾動視圖的代碼。

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
{ 
    float updatedCurrFrameX = originalFrame.origin.x*[scroll zoomScale]; 
    float updatedCurrFrameY = originalFrame.origin.y*[scroll zoomScale]; 
    float updatedCurrFrameWidth = originalFrame.size.width*[scroll zoomScale]; 
    float updatedCurrFrameHeight = originalFrame.size.height*[scroll zoomScale]; 

    CGRect visibleRect=CGRectMake(updatedCurrFrameX, updatedCurrFrameY, updatedCurrFrameWidth, updatedCurrFrameHeight); 
    scroll.contentSize= visibleRect.size; 
    scroll.contentOffset=visibleRect.origin; 



} 

回答

0

實施UIScrollViewDelegate時通知用戶放大(scrollViewDidEndZooming:withView:atScale:)然後通過設置contentSizecontentOffset採取相應的行動。如果您無法通過調整contentSize和offset來獲得所需的效果,則可以考慮在縮放時更改scrollView的documentView。