2011-11-09 157 views
10

我有一個iPhone應用程序,我想以隱藏狀態欄開始,顯示啓動畫面,並在加載顯示的內容時切換狀態欄它需要一些時間,因爲它必須通過互聯網加載),使用[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES]。在狀態欄顯示和隱藏後,​​我希望我的內容視圖可以調整大小並正確定位。我希望我的應用程序能夠以任何設備方向運行(可能不包括蘋果指南中指定的自頂向下方向)。在iPhone狀態欄顯示/隱藏後調整內容大小

我的問題是我無法讓應用程序出現,因爲它應該。它可以在自動旋轉後顯示20pt空格,或者在出現時隱藏在狀態欄下方。

應該怎樣處理這個問題?

我還沒有測試過,但我想傳入的呼叫欄會出現相同的問題。

編輯

我會試着更好地解釋這個問題是什麼。當應用程序啓動時,它隱藏了狀態欄,並且在窗口座標系中,窗口可見區域的頂角在窗口座標系中爲0,0。然後我滑入狀態欄。這不會改變窗口大小,因此0,0點現在隱藏在狀態欄的後面。窗口可見區域的左上角是0,20,我必須將視圖移動到這些座標(並將其正確調整爲320 * 460)。但是,如果我旋轉設備,然後回到原始位置,可見窗口區域的左上角座標再次變爲0,0,並且窗口現在大小爲320 * 480.

解決方法是將標誌告訴不管手機是否已經旋轉過,但是當我旋轉到另一個位置然後返回時,沒有辦法讓窗口座標不變。

+2

有名字你在你的視圖上設置了自動調整掩碼? – titaniumdecoy

回答

1

是的,呼叫欄出現相同的問題。或者,音頻記錄欄也會做同樣的事情。 (啓動語音備忘錄應用程序錄制更容易,也許更便宜,然後回到應用程序以測試其如何處理額外的條。)

在視圖上設置自動調整大小的遮罩是通常爲您調整的東西。

如果您在XIB中構建用戶界面,則可以使用設置進行播放,直到視圖更改或設備或模擬器旋轉時視圖正確更改大小。

請記住,包含子視圖上的遮罩設置也很重要。

0

@ walt的答案是否真的有效?我試圖將這個標誌添加到每個視圖控制器的視圖屬性,但沒有任何運氣,我錯過了什麼?

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

This solution解決了我的問題,但它看起來很醜。我必須手動調整視圖控制器視圖框架的大小。

0

這應該可以解決您的問題

只是一個觀點:

[self.view setFrame: [self.view bounds]]; 

與滾動視圖的視圖裏面

[self.view setFrame: [self.view bounds]]; 
[self.theScroller setFrame: [self.view bounds]]; 

「theScroller是我的滾動視圖