2012-11-19 69 views
0

它必須考慮到:是否有函數來知道視圖的可用大小?

的狀態欄。(它可以是40分,如果你有熱點) 的TabBar 導航欄。

基本上在viewDidLoad我看到我的視圖的大小爲320 * 480。

我想知道iOS在哪裏決定作爲我的屏幕的屏幕大小。我使用UIStoryBoard。

因此,在viewDidLoad上,我打算調整大小。

我甚至不確定這是否是正確的方法。

注意:如果我不使用storyBoard,我所面臨的問題似乎不會發生。

在viewDidLoad中,當我使用XIB,self.view的內容是正確的,即416,而不是480,由於UINavigationController的和UITabBar

回答

1

嘗試重寫UIViewController viewWillLayoutSubviews方法。視圖的框架將由此設置。

viewWillLayoutSubviews方法中,視圖控制器的主視圖是您需要知道的大小。它已經調整了狀態欄和導航欄以及工具欄和選項卡欄。它也考慮到方向。沒有一種方法可以詢問尺寸是多少。此外,沒有必要問這樣一個問題。在viewDidLoad中創建你想要的所有子視圖。但根據viewWillLayoutSubviews中的視圖尺寸進行佈局。

+0

這是在viewDidLoad之前還是之後調用的? –

+0

之後。如果主視圖尚未加載,則很難對子視圖進行佈局。 – rmaddy

+0

+1這是正確的,它確實解決了我的問題。它根本沒有回答這個問題。如果沒有其他更好的答案,我會在一週內選擇此項。 –

相關問題