2010-12-11 108 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