2010-08-25 106 views
0

在我的iPhone應用程序中,我有一個帶有兩個子視圖的UIViewController:一個主UIView(讓我們稱之爲mainView)和一個輔助UIView(我們稱之爲secondView),它是通常隱藏但有時會顯示(例如用戶設置)。在我的UIViewController中,self.view被設置爲mainView。當用戶切換到子視圖時,我打電話[self.view addSubview:secondView],當用戶切換回主UIView時,我打電話[secondView removeFromSuperview]UIView子視圖不是自動旋轉或自動調整大小的iPad

有其本人目前處理兩個問題:

  1. 當用戶旋轉iPhone或iPad,主要的UIView(MAINVIEW)autorotates妥善及其所有UI項目遵循其自動調整大小規則,我已經在Interface Builder中設置好了。但是,當顯示輔助UIView(secondView)並且iPhone或iPad旋轉後,其所有UI項目都不會遵循其自動調整規則。我發現,當我設置self.view = secondView,然後旋轉設備時,視圖正確旋轉。
  2. 在iPad中,當我使用[self.view addSubview:secondView]拉起第二個視圖時,它不會調整大小以填充整個屏幕,就像主版本的UIView已調整大小。所以我最終得到了一個屏幕,它在後臺顯示mainView UIView,在左上角顯示secondView UIView,而不佔用整個屏幕。

我的直覺告訴我,這兩個問題是相互關聯的。有沒有其他人遇到這種類型的問題與輔助UIViews,他們添加到他們的UIViewControllers使用addSubview:

+0

我在與iOS6的iPhone上有類似的經歷。我有一個通常隱藏的子視圖,只要堅持以肖像爲導向,即使其他一切都是以景觀爲導向的。它就像從來沒有理解它是視圖層次結構的一部分,所有視圖都旋轉了。 – 2013-06-19 18:05:42

回答

3

當使用addSubview

[secondView setFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

不是很優雅。但它對我有用:

0

我有一個類似的問題。我通過設置視圖的內容模式來解決尺寸問題。

Exp:[_yourView setContentMode:UIViewContentModeScaleAspectFill]; 

我希望這有助於...

+0

你應該在'''之間格式化你的代碼,或者在代碼之前使用4個空格。有一個幫助格式化代碼的按鈕。 – 2013-11-01 21:03:01