2011-09-02 55 views
1

我對這一個感到困惑。如何在使用UISplitViewController時獲得詳細視圖的實際框架大小

我試圖編程大小一些UI元素...

元素的大小是基於父視圖(這裏的詳細視圖)的大小。 (我不想使用autosize-mask,只是因爲我無法得到我想要的效果)

在橫向模式下運行時,讀取當前視圖的幀大小UIViewDidAppear,大小我得到的總是1024像素寬,這顯然不會是一旦一切都顯示的情況下(這將是1024減去根控制器的寬度(320像素)= 704像素寬)

在什麼時間,並且我應該在哪裏預測視圖的大小,以便我可以準確讀取框架大小。

很顯然,我希望儘早在視圖生命週期中做到這一點,並且如果可能的話在繪製任何東西之前,用戶不會看到我正在調整對象的大小。

理想情況下,我想知道是否有一個特殊的函數被調用(類似於UIViewWillAppear),我可以放置我的代碼。

謝謝

+0

我想到了爲什麼我沒有在預期的時候被調用。我將UISplitViewController與UITabBarController結合使用。 – jyavenard

回答

0

通常情況下,從UIViewDidAppear被調用的時候,一切都已經調整到正常。 但是,當您使用從UITabBarController啓動的UISplitViewController時,不會像您期望的那樣調用消息UIViewDidAppear。

iOS 4及更早版本不支持這種情況。 Apple的UI準則要求每個屏幕只有一個UIView控制器(UISplitViewController和UITabBarController除外)。 從iOS 5看起來,這種情況將得到支持。

相關問題