1

UIScrollView のズーム機能に問題があります。まったく機能しません。同様の投稿を読んだことがありますが、他の人が使用した修正はどれもうまくいかないようです。私のviewControllerはUIScrollViewDelegateを参照し、UIScrollViewのインスタンス変数があり、サブビューがUIScrollViewのデリゲートオブジェクトであることを宣言し、(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView. これが私のloadView関数です:

(void)loadView 
{
    CGRect frame = CGRectMake(0, 0, 320, 480);

    scrollView = [[UIScrollView alloc] initWithFrame:frame];
    [scrollView setScrollEnabled:YES];

    CGRect reallyBigRect;
    reallyBigRect.origin = CGPointZero;
    reallyBigRect.size.width = frame.size.width * 2.0;
    reallyBigRect.size.height = frame.size.height * 2.0;
    [scrollView setContentSize:reallyBigRect.size];

    CGPoint offset;
    offset.x = frame.size.width * 0.5;
    offset.y = frame.size.height * 0.5;
    [scrollView setContentOffset:offset];


    [scrollView setMinimumZoomScale:1];
    [scrollView setMaximumZoomScale:5];
    [scrollView setUserInteractionEnabled:YES];
    self.scrollView.delegate = self;


    self.view = scrollView;

    views = [[HypnosisView alloc] initWithFrame:reallyBigRect];

    [scrollView addSubview:views];

    [self.view setBackgroundColor:[UIColor clearColor]]; 

}

このコードにより、問題なくスクロールできますが、ズームは存在しません。

誰かからの連絡をお待ちしております、デイブ

4

3 に答える 3

2

実装してみましたscrollViewDidEndZooming:withView:atScale:か?


AppleのUIScrollViewドキュメントから:

スクロールビューは、コンテンツのズームとパンも処理します。ユーザーがピンチインまたはピンチアウトジェスチャを行うと、スクロールビューがコンテンツのオフセットとスケールを調整します。ジェスチャが終了したら、コンテンツビューを管理するオブジェクトは、必要に応じてコンテンツのサブビューを更新する必要があります。(ジェスチャが終了しても、指が下がっている可能性があることに注意してください。)ジェスチャの進行中、スクロールビューはサブビューに追跡呼び出しを送信しません。

クラスには、プロトコルUIScrollViewを採用する必要のあるデリゲートを含めることができます。ズームとパンを機能させるには、デリゲートは両方とscrollViewDidEndZooming:withView:atScale:;を実装する必要があります。さらに、最大()と最小()のズームスケールは異なっている必要があります。UIScrollViewDelegateviewForZoomingInScrollView:maximumZoomScaleminimumZoomScale

于 2012-07-22T01:16:01.293 に答える