2010-09-23 75 views
2

我已將所有子視圖設置爲基於self.view在設備輪換上自動調整子視圖的大小

EG:UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,(self.view.frame.size.width-20),(self.view.frame.size.height-90))];

然而當視圖旋轉(shouldRotateToDeviceOrientation或其他)的意見都保持相同的尺寸。我怎樣才能讓他們改變形狀以適應?我可以自動執行此操作嗎?

感謝

回答

2

絕對。看看autoresizingMask屬性。如果您在這種情況下設置了圖像視圖,那麼要有一個自動調整大小爲UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight的掩碼,那麼當其父視圖調整大小時(因爲它可能會或可能不會在您的應用旋轉時自動執行) - 您可能必須在父級上設置類似的autoresizingMask視圖),它將保持您爲其設置的外部邊距。

0

你必須[view setAutoresizingMask:...]

1

萬一你在父視圖底部的視圖這應該幫助:

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; 

自哪裏是你的孩子認爲,應該調整。如果您沒有設置UIViewAutoresizingFlexibleTopMargin,那麼在水平模式下,如果它處於垂直模式的底部,則不會看到您的視圖。

也不要忘記設置:

self.autoresizesSubviews = YES; 

而自動尺寸模式,適合在您的視圖中的所有子視圖。所以當它被調整大小時,它裏面的所有東西都會被調整大小。

相關問題