UINavigationController的高度问题

UINavigationController*navController=[[UINavigationControlleralloc]initWithRootController:rootController];这个时候navController.view的高度是480,到了rootController后,self.navigationController.view的高度怎么又变成了460???确实是有个地方修改了frame,我还是有个疑问,既然navigationcontroller的view高度是480,为什么导航是从statusbar下面开始显示的??是不是在navigationController的initWithRootViewController:rootViewController方法里,把navigationController的viewframe修改成rootViewController的viewframe了,不然解释不通啊
叮当猫咪
浏览 605回答 2
2回答

30秒到达战场

我勒个去~~~这么诡异,我在我的应用里打印了一把,都是480的。但是你提到的情况,很可能是某个操作影响了statusbar,造成navController的高度变了。因为iPhone里只有statusbar的高度是20像素的。能贴一下其他代码么?看看问题出在哪里一下是我的代码和输出结果:TestAppDelegate.m-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{self.window=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];//Overridepointforcustomizationafterapplicationlaunch.self.window.backgroundColor=[UIColorwhiteColor];[self.windowmakeKeyAndVisible];self.viewController=[[TestViewControlleralloc]init];self.navController=[[UINavigationControlleralloc]initWithRootViewController:self.viewController];NSLog(@"height:%f",self.navController.view.frame.size.height);[self.windowaddSubview:self.navController.view];NSLog(@"height:%f",self.navController.view.frame.size.height);returnYES;}TestViewController.m-(void)viewDidLoad{[superviewDidLoad]; //Doanyadditionalsetupafterloadingtheview.NSLog(@"height:%f",self.navigationController.view.frame.size.height);}三个NSLog打印出来的都是4802012-09-1923:43:13.561NAVTest[1132:c07]height:480.0000002012-09-1923:43:13.562NAVTest[1132:c07]height:480.0000002012-09-1923:43:13.563NAVTest[1132:c07]height:480.000000

喵喵时光机

确实是有个地方修改了frame,我还是有个疑问,既然navigationcontroller的view高度是480,为什么导航是从statusbar下面开始显示的??是不是在navigationController的initWithRootViewController:rootViewController方法里,把navigationController的viewframe修改成rootViewController的viewframe了,不然解释不通啊?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript