2011-03-30 37 views
20

我試圖瞭解當觸發通話狀態欄時,與UITabBarControllerUINavigationControllerUIViewController相關聯的view如何反應。
我的問題是,他們似乎表現不同,這使我的副作用....In-Call狀態欄如何影響UIViewController的視圖大小? (以及如何正確處理)

我做了改變窗口的根視圖控制器爲3種以上的一個項目,我轉儲descriptionview獲取幀座標。


  • UIViewController

enter image description here

門店狀態OFF

 
UIView: 0x4e2a1f0; frame = (0 20; 320 460); autoresize = W+H; .... 
ON
UIView: 0x4e2a1f0; frame = (0 40; 320 440); autoresize = W+H; ...

這一次我明白了:門店狀態欄出現時,在的UIViewController的視圖的寬度縮小,從而失去20,其從20歲座標移動到40

這是完美的!我希望在用UITabBarControllerUINavigationController替換經典的UIViewController時也是如此,但事實並非如此!


  • UINavigationController

    enter image description here

門店狀態欄OFF

UILayoutContainerView: 0x4b35ab0; frame = (0 0; 320 480); autoresize = W+H; ..
ON
UILayoutContainerView: 0x4e1b060; frame = (0 0; 320 480); autoresize = W+H; ..

在這種情況下,由UINavigationController處理的視圖在切入狀態欄切換時沒有更改其框架屬性? (爲什麼?:()


  • UITabBarController

enter image description here OFF

UIView: 0x4b2f6a0; frame = (0 20; 320 460); autoresize = W+H; ...
ON
UIView: 0x4b2f6a0; frame = (0 20; 320 460); autoresize = W+H; ...

相同的UINavigationController:在切入狀態欄切換時,UITabBarControllerview似乎不受影響。


有人能解釋我這個調整大小的顯示出現在門店狀態欄時,是如何工作的?
我的最終目標是顯示一個UIView,顯示爲高於整個UITabBarController並且在顯示通話狀態時正確調整大小。不過,我真的不知道該往哪裏放這樣的觀點在視圖層次結構:如果我將其添加爲的UITabBarController的視圖的孩子,因爲這一個不向門店狀態顯示的反應,我的沒有反應,以及: (

+3

+1關心這個。 – 2011-10-27 14:21:26

回答

17

的看法時,在通話狀態欄切換高度依賴於它的固定方式。

玩弄了UIView的autoResizingMask控制視圖是否應該向下移動或調整時,在通話狀態欄上顯示出來。

這兩個屬性,

UIViewAutoresizingFlexibleTopMargin 
UIViewAutoresizingFlexibleHeight 

會幫助你。第一個將視圖向下推,第二個改變大小。

4

您的常規UIViewController示例將[wantsFullScreenLayout]設置爲NO,這會導致視圖自動調整大小,因此不會在狀態欄下進行。

的UINavigationController和的UITabBarController,在另一方面,默認wantsFullScreenLayout爲YES。所以他們的意見佔據了整個窗口,他們自己調整和定位他們的子視圖以適當地處理狀態欄。如果你明確地設置這些控制器的屬性NO,你應該得到你想要的行爲(但隨後就失去了正確處理設置wantsFullScreenLayout爲YES,如果你在乎這個孩子控制器的能力)。

在你的UITabBarController例子,順便說一句,似乎不打印的標籤欄控制器的視圖中的信息;這裏是一個UILayoutContainerView,而不是一個普通的UIView。

+0

哼哼,挺有意思的評論,我會試試看你的提示!非常感謝。 – yonel 2011-07-04 08:25:48

+0

這似乎不適用於我。 – dacopenhagen 2013-01-15 16:40:43

1

理想情況下,你應該忘記的觀點得到多少量大小和玩面罩自動調整大小。

相關問題