我有幾個UIViewControllers,通過UINavigationController加載,其中我重載loadView,並設置自定義視圖來顯示。我在設置一些子視圖的框架時可能會遇到問題,也可能是視圖本身。我認爲無論是UINavigationController還是UIViewController都能夠強制它的視圖在顯示時填充屏幕。UIViewController或UINavigationController設置它的視圖大小嗎?
我想知道是否和/或什麼時候設置了視圖的大小。如果它正在發生,它是設置視圖的框架還是以另一種方式進行。
謝謝。
更新: 通過這方面的工作,而我剛纔注意到的是,我做一個新的UINavigationController,這個的loadView方法:
- (void)loadView
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10.0f, 10.0f, 10.0f, 10.0f)];
[view setBackgroundColor:[UIColor redColor]];
self.view = view;
[view release];
}
我得到一個紅色的觀點佔據了整個屏幕,除了狀態酒吧和標題。我的視圖何時被調整大小以填滿屏幕?我應該在創建視圖時使用多大的尺寸?
謝謝,澄清。當我加載視圖控制器loadView中的視圖,當通過UINavigationController推送時,我是否需要將框架設置爲CGRectMake(0.0,0.0,320.0,416.0)?因爲我不需要在UINavigationBar或狀態欄的框架原點y座標中進行補償? – Ryan
NavBar的底部將成爲視圖控制器的新X,Y原點,您只需要補償調整後的高度。可以肯定的尺寸使用 'NSLog(@「wxh =%fx%f」,self.view.frame.size.width,self.view.frame.size.height);' – Wolfert
謝謝,澄清它爲了我。我仍然想知道什麼時候視圖改變了。因爲即使我在loadView中設置了不正確的尺寸,它也會變成正確的尺寸。我會接受你的回答,因爲它讓我走了。再次感謝。 – Ryan