2011-10-26 14 views
0

私は複数の部分で画像を持っています。uiscrollviewスクロールエリアを制限する

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

上記の図1,2,3および4は、大きな画像のセクションです。 UIScrollView内でUIImageViewを使用しています。私は一度に1つの部分をユーザーに示しています。セクションが個々の画像であるように見えるように。私がセクション3を表示している場合、セクション3は画像のすべての部分を隠していますが、セクション3は画面の中央に表示されるように画像座標を変更します。今までは、すべてが正常に動作しています。今度は、セクションのズームを実装する必要があります。セクションをズームした後、ユーザーはセクション内をスクロールすることのみが許可され、ズームされたセクションの外側をスクロールすることはできません。私は、それが画面の外にイメージを取るuiscrollviewのcontentoffsetとcontentsizeプロパティを設定するかのように、私は事を実装することができません。

誰でも私にこれを実装する方法を提案できますか?

以下は、私がスクロールビューを配置するために使用しているコードです。

- (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

contentSizecontentOffsetを設定することにより、それに応じて行動する場合、次にユーザ・ズーム(scrollViewDidEndZooming:withView:atScale:)を通知するUIScrollViewDelegateを実装します。 contentSizeとoffsetを調整して目的の効果を得られない場合は、zoomビューでscrollViewのdocumentViewを変更することを検討してください。