2011-04-25 129 views
1

我有我創造了這樣的一個的loadView觀點:的UIView大小的改變

- (void)loadView { 
UIView *mainView = [[UIView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.bounds]; 
self.view = mainView; 
[mainView release]; 

}

所以,如果我打印的觀點我得到的結果是: > OK,這就是我想要的,767x1024

的問題是,如果我把這個方法:

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

並呈現modalViewController,然後關閉它,我以前的觀點控制器上,打印viewDidAppear和viewWillAppear中我得到這個方法:

viewWillAppear中:

[<UIView: 0x4e946a0; frame = (0 0; 768 1024); layer = <CALayer: 0x4e946d0>>] 

viewDidAppear:

[<UIView: 0x4e946a0; frame = (0 0; 768 1004); layer = <CALayer: 0x4e946d0>>] 

爲什麼視圖大小正在改變20?我知道這與狀態欄有關,但無法弄清楚。

謝謝。

回答

1

你說得對。狀態欄的默認大小是20像素的高度。當狀態欄出現時,UIViewController會自動調整子視圖的大小。根據蘋果文檔「當視圖控制器顯示在屏幕上時,其根視圖通常會調整大小以適應可用空間,這可以根據窗口的當前方向和其他界面元素(如狀態欄)的不同而有所不同。」 - http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

+0

嗯,我用「self.wantsFullScreenLayout = YES;」固定 – John 2011-04-25 20:18:28