2013-03-29 64 views
2

下面的行的代碼:self.view.frame.size.height 1004,而不是1024

NSLog(@"%f, %f", self.view.frame.size.width, self.view.frame.size.height); 

返回768 * 1004用於iPad設備。我藏在viewDidLoad方法使用

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 

狀態欄,並在viewWillAppear方法使用

[self.navigationController setNavigationBarHidden:YES]; 

我缺少的是究竟隱藏navigationbar?我相信它應該返回1024,而不是1004

注意:該viewcontroller通過故事板創建,是一個ModalStoryboardSegue採用了全屏幕演示。

+0

狀態欄是否在Interface Builder中可見? –

+0

只是一個猜測,但你在viewDidLoad中做它。該視圖可能已被鎖定到768 * 1004尺寸。也許你應該在viewWillLoad中隱藏statusBar?然後,也許視圖將在加載時使用完整的768x1024大小進行初始化。 –

+0

@JohnBowers在viewDidLoad中,您只有0 * 0. –

回答

1

你在哪裏做日誌?如果我在viewDidLoad中隱藏狀態欄,並執行viewDidAppear中的登錄,則獲得1024.

+0

日誌記錄在viewDidLoad中完成。是否有一個原因,它是viewDidLoad中的1004和viewDidAppear中的1024,以及它如何影響View設置? – David

+0

@David,我認爲,因爲該視圖尚未重繪,直到下一輪運行循環。即使您將動畫設置爲無,它仍然在viewDidLoad中顯示1004。 – rdelmar

+0

因此,應該在viewDidAppear方法而不是viewDidLoad中實現涉及self.view.frame的事情,以便我可以使用1024值? – David

1

viewDidLoad在視圖佈局之前調用。在此方法中,視圖的大小是您在界面構建器中設置的大小(模擬大小)。

大小不應該是一個問題,視圖將很快得到正確的大小(檢查viewDidLayout方法)。

請注意,您仍然可以根據控制器的視圖大小在viewDidLoad中設置您的視圖,只需正確設置您的自動確認屏蔽。

相關問題