2011-09-19 18 views
0

iPhone上の私のUIScrollViewは480x230で、コンテンツは最初に表示されたときに972x230です。ユーザーがUIScrollViewをダブルタップすると、内容が480x230のUIScrollViewに比例して拡大される機能を提供する必要があります。再度ダブルタップすると元のサイズにズームアウトする必要があります。UIScrollViewのコンテンツをどのようにズームするのですか

これを行うにはどのような方法が最適ですか?私はこれを数時間手探り、これが働くだろうと思った...

[bodyClockScrollView zoomToRect:bodyClockScrollView.frame animated:YES]; 

しかし、何も起こるようですされていません。

ありがとうございます。私に正しい方向を向けるどんな助けでも感謝します。

+0

タップを取得する方法を知っていれば、ダブルタップの条件で必要なものだけを実装する必要があります。 – rptwsthi

答えて

1

はCGAffineTransformを使用して、私は私が欲しいものを行う方法を考え出しました。.. 。

//bodyCleckScrollView contains a UIView name bodyClock 
    //get the scale factor required to fit bodyClock inside the iPhone window and resize it... 
    CGFloat scale = 480/bodyClockScrollView.contentSize.width; 
    bodyClock.transform = CGAffineTransformScale(bodyClock.transform, scale, scale); 
    //move bodyClock to the bottom of bodyScrollView. 
    bodyClock.transform = CGAffineTransformTranslate(bodyClock.transform, 0.0,bodyClockScrollView.frame.size.height-bodyClock.frame.size.height); 
    //scoll bodyScrollView so that bodyClock is centered in the window 
    CGPoint offsetPoint = CGPointMake(bodyClock.frame.origin.x, 0.0); 
    [bodyClockScrollView setContentOffset:offsetPoint animated:YES]; 

これは素晴らしい作品と私​​はデフォルトのサイズと位置に外にピンを見るにはズームインしたいときには、単純に呼び出す...

bodyClock.transform = CGAffineTransformIdentity; 
2

はあなたがscrollviewのデリゲートとして設定しているクラスは、このメソッドを実装していることを確認する必要があり:

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView { 
return someView; 

}

+0

ありがとう、私はこのメソッドを実装していました。 – user278859

関連する問題