簡體   English   中英

顯示/隱藏iPhone狀態欄后調整內容大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM