UIImageView を含む UIScrollView があり、iPhone が回転したときに正しい動作を得るのに問題があります。
目標:縦向きから横向きにするときに、次のことを取得しようとしています。
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
ここでは、縦向きビューの画像全体が、iPhone が回転したときに横向きビューに収まるようにスケーリングされます。こちらも中心です。また、アスペクト比を維持しようとしています。ユーザー インタラクションもオンになっており、ユーザーは画面全体を使用して画像をパン/ズームできる必要があります。
現在autoresizingMask
、scrollViewには次のものがあります。
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
しかし、これは次のようになります
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
この設定では、スケールと左上隅からのオフセットが維持されます。
質問:
適切な を使用してこの動作を取得することは可能autoresizingMask
ですか? そうでない場合は、おそらく設定する必要があります
scrollView.autoresizingMask = UIViewAutoresizingNone;
手動で設定zoomScale
しcontentOffset
、回転時に UIScrollView を設定します。しかし、それはどこで行うべきですか?その変化をアニメートするのはどうですか?
解決策: 以下の回答をわずかに変更することで、以下のコードを使用して上記の動作を得ました:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;