2012-11-02 78 views
2

由於iPhone上的雙高狀態欄,我在佈局方面存在很多問題。我的佈局以一種給所有UIelements所需大小的方式進行組織,調整它們的大小以處理雙高度狀態欄,使得我的應用佈局在正常使用中看起來很醜。iPhone雙高狀態欄導致佈局問題

任何人都可以建議是否有任何替代方法來處理當雙高狀態欄出現時向下推出屏幕的佈局?並在正常使用(沒有雙高狀態欄)UI仍然看起來不錯?

+0

什麼是雙高狀態欄? –

+0

雙高狀態欄是您在接聽電話或使用內置共享中的iOS時使用應用程序時獲得的狀態欄。 – miho

+1

如果您使用自動調整遮罩或自動佈局,那麼您的用戶界面的相對佈局將保持不變,但只是調整爲較小。如果你既不使用,UI也不會適應屏幕邊界的變化,並且看起來很醜。所以我的建議是確保使用自動佈局或正確設置自動調整屏蔽。 –

回答

5

通常爲了處理屏幕尺寸的變化,Autoresize規則非常重要(Autolayout在iOS 6中更加靈活)。

這些規則定義了元素的位置和大小如何根據超級視圖的大小變化而變化。它們是通用規則,會影響頂部/左側/底部/右側邊距和寬度/高度,但在大多數情況下適用於大多數人。

您需要決定您希望視圖的縮略高度看起來像什麼樣,並在實現視圖時考慮這一點。如果Autoresize能夠爲您處理這個問題,那太棒了! (當選擇一個視圖標尺標籤下)你可以應用它們無論是在IB,或通過代碼:

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

如果你靶向iOS 6以上,你也可以使用自動版式和約束制度。

如果這不合適,那麼當狀態欄更改高度時,您可以根據需要執行自己的轉換。這可以通過這樣做:

  1. 實現在應用程序委託這些委託方法:

    application:willChangeStatusBarFrame: 
    application:didChangeStatusBarFrame: 
    
  2. 觀察這些通知

    UIApplicationWillChangeStatusBarFrameNotification 
    UIApplicationDidChangeStatusBarFrameNotification 
    
+0

如果這個答案符合你的需求,你能接受嗎?謝謝 – WDUK