2011-02-08 8 views
10

iPad用のシンプルなアプリケーションを作成しています。これは、拡大/縮小してナビゲートできる巨大な画像で構成されています。UIImageView/UIScrollView固定アスペクト比を画面に合わせるように強制する

この画像はUIImageViewの内部に配置され、UIScrollViewの内部に配置されます。

ナビゲーションとズームの作業は100%正常です。ただし、画像は固定されたアスペクト比で画面に収まるようにロードされ、(ズームインしても)変更されることはありません。

私はInterface Builderが私が気づいていないプロパティを設定していると感じていますが、これを修正するために考えられるすべてを試しました。

問題:

アプリは、最初の負荷、UIScrollView内部の内容が正確にそのアスペクト比changed./fixedを有することによって計算された画面に合うように自動的に再サイズです。実際の画像は巨大です(iPadの解像度よりも大きい)。この拡大縮小されたアスペクト比は、画像を拡大しても変わらず、画像が引き伸ばされて見えます。

私が試しても、iPadが画像を自動的にリサイズしないようにすることはできません。私は単に、iPadの画面に現在合っている部分が画像の左上隅にある状態で、iPad上で正常に表示された画像(100%ズーム)でアプリを開始したいと考えています。

私は「左上」にInterface BuilderでUIImageView's内容モードを変更しようとした:私はそれを修正しようとした何

。これは完全に動作するように見えましたが、UIScrollViewは、最初に表示された部分(左上)を越えて画像をスクロールさせることはできません。左上部分をズームインしてスクロールできますが、最初は画面に表示されていた部分を超えることはありません。

コード:

ここで私はセットアップにビューを使用しているコードです。 imageScrollViewUIScrollViewであり、imageViewUIImageViewである。それらはともにIBOutletsです。

// Set the needed attributes of the imageView 
    [imageView setImage:[UIImage imageNamed: @"TestImage.png"]]; 
    imageView.userInteractionEnabled = YES; 

    // Set a bunch of the imageScrollView attributes. 

    // calculate minimum scale to perfectly fit image width, and begin at that scale 
    float minimumScale = [imageScrollView frame].size.width/[imageView frame].size.width; 
    [imageScrollView setMinimumZoomScale:minimumScale]; 
    [imageScrollView setZoomScale:1]; 
    [imageScrollView setMaximumZoomScale:10]; 
    [imageScrollView setContentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)]; 
    [imageScrollView setScrollEnabled:YES]; 
    [imageScrollView setUserInteractionEnabled:YES]; 
    imageScrollView.clipsToBounds = YES; 
    imageScrollView.bounces = FALSE; 
    imageScrollView.bouncesZoom = FALSE; 

私はまた、タップズームを処理するための2つのUIGestureRecongizersがありますが、私は、彼らが問題であることを信じていません。私がそれらをコメントアウトすると、何も変わりません。

いずれかのヘルプが極端にになります。

答えて

関連する問題