[英]resize content after iPhone status bar is shown/hidden
我有一個iPhone應用程序,我想從隱藏狀態欄開始,顯示啟動畫面,並在加載要顯示的內容時切換狀態欄(這需要一些時間,因為它必須通過互聯網加載),使用[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES]
。 我希望我的內容視圖在狀態欄顯示和隱藏后調整大小並正確定位。 我希望我的應用程序能夠以任何設備方向運行(可能不包括蘋果指南中指定的自上而下的方向)。
我的問題是我無法讓應用程序顯示出來。 它在自動旋轉后顯示20pt的空白區域,或者在顯示時隱藏在狀態欄下方。
處理這個問題的正確方法應該是什么?
我還沒有測試過它,但我猜這個問題會出現在來電吧。
編輯 :
我會試着更好地解釋問題所在。 當應用程序啟動時,狀態欄隱藏,在窗口坐標系中,窗口可見區域的頂角在窗口坐標系中為0,0。 然后我在狀態欄中滑動。 這不會改變窗口大小,因此0,0點現在隱藏在狀態欄后面。 窗口可見區域的左上角是0,20,我必須將視圖移動到那些坐標(並將其正確調整為320 * 460)。 但是如果我旋轉設備,然后回到原始位置,可見窗口區域的左上角坐標再次變為0,0,窗口現在大小為320 * 480。
一個解決方法是保持一個標志,告訴手機之前是否已經旋轉,但是當我旋轉到另一個位置然后回來時,是否有辦法讓窗口坐標不變?
是的,調用欄出現了同樣的問題。 或者,錄音條也可以做同樣的事情。 (啟動語音備忘錄應用程序錄制更容易也可能更便宜,然后回到您的應用程序來測試它如何處理額外的欄。)
在視圖上設置自動調整大小的蒙版通常會為您調整內容。
如果要在XIB中構建UI,則可以使用這些設置,直到視圖在條形更改或設備或模擬器旋轉時正確更改大小。
請記住,包含的子視圖中的蒙版設置也很重要。
@ walt的答案真的有效嗎? 我試圖將這個標志添加到每個視圖控制器的視圖屬性,但沒有任何運氣,我錯過了嗎?
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
這個解決方案解決了我的問題,但看起來很難看。 我必須手動調整視圖控制器視圖框的大小。
這應該可以解決您的問題
只是一個視圖:
[self.view setFrame: [self.view bounds]];
內部滾動視圖的視圖
[self.view setFrame: [self.view bounds]];
[self.theScroller setFrame: [self.view bounds]];
“theScroller是我的scrollview的名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.