2010-12-11 87 views
0

不能做这样一个简单的任务是非常令人沮丧的:我有一个带有单个viewcontroller的“应用程序”,并且在其中有一个单独的UIImageView,它在potrtait模式下初始化为特定图像。如何旋转UIImageView?

现在,当iPhone变为风景模式并且shouldAutorotateToInterfaceOrientation事件触发时,我返回YES,我的结果UIImageView看起来完全搞砸了:要么图像被拉伸以填充横向模式框架(当然这看起来很可笑)或图像的顶部和底部被裁剪。

如何让我的UIImageview和包含的图像优雅地处理设备旋转,并在横向模式下显示正常的图像?

回答

2

将图像视图的父母UIViewautoresizesSubviews设置为YES

还设置图像视图的autoresizingMaskUIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

+0

谢谢,事实上图像不再被嘲讽。 – jkally 2010-12-11 22:33:32

+0

但它不是完整的图像 – jkally 2010-12-11 22:33:53

+0

在风景模式下,它只显示图像的上半部分 – jkally 2010-12-11 22:34:24

0

你也想看看你的UIImageView的contentMode。 aspectFill和aspectFit的行为非常不同。

0

您总是可以继承UIView并覆盖layoutSubviews方法来手动布局您的子视图。过渡到风景仍然是动画,你可以做任何你想要的子视图。

+0

顺便说一句,你需要将contentMode设置为'UIViewContentModeRedraw' – 2010-12-11 22:48:55