Ric*_*evy 5 iphone cocoa-touch uiview uinavigationcontroller
我的印象是UINavigationController的导航栏总是按下子视图的高度,这样子视图的原点就在标题栏的底部.
但是当我提出像这样的视图控制器时......
MyViewController *viewController = [[MyViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
viewController.title = @"My View Controller";
viewController.navigationItem.prompt = @"My Prompt";
viewController.delegate = self;
[self presentModalViewController:navigationController animated:YES];
[navigationController release]; [viewController release];
Run Code Online (Sandbox Code Playgroud)
...然后检查self.view.frame.size.height
NSLog viewDidLoad
,它报告我的视图是460px高.它不应该减去我的标题和提示的高度?
lxt*_*lxt 18
所以,按要求:
当你调用viewDidLoad
视图控制器时还没有被推到屏幕上.因此,当您从该方法中获得帧大小时,它将报告其默认值(通常,iPhone应用程序为320x480).
然后视图自动调整以考虑导航栏.因此,当您检查框架尺寸时,viewWillAppear
它现在将是正确的.通常这对iPhone应用程序来说不是问题.对于iPad应用程序,您有多个方向,可能会有点痛苦!
这有一些例外 - 例如,使用NIB时.
归档时间: |
|
查看次数: |
3679 次 |
最近记录: |