【发布时间】:2011-05-12 07:15:16
【问题描述】:
我有一个包含 UIImageView 的 UIScrollView,但在 iPhone 旋转时我很难获得正确的行为。
目标:从纵向到横向时,我试图获得以下内容:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
当 iPhone 旋转时,纵向视图中的整个图像被缩放以适应横向视图。它也是居中的。我也试图保持纵横比。用户交互也已开启,用户应该能够使用整个屏幕来平移/缩放图像。
目前我在滚动视图上有以下autoresizingMask:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
但这给出了以下内容
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
此设置保留从左上角的比例和偏移。
问题:
是否可以使用合适的autoresizingMask 获得这种行为?如果没有,可能应该设置
scrollView.autoresizingMask = UIViewAutoresizingNone;
并为 UIScrollView 手动设置 zoomScale 和 contentOffset 旋转。但是,应该在哪里做呢?为这种变化设置动画怎么样?
解决方案: 通过稍微修改下面的答案,我得到了上述行为 以下代码:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;
【问题讨论】:
标签: iphone uiscrollview autoresizingmask