qic*_*ren 2 uiviewcontroller uiview ios
我不熟悉iOS UIViewController的详细工具.我有以下代码来创建一个新的UIViewController并显示它,但我在initWithFrame方法中设置的帧不起作用,控制器的视图始终是全屏(320*480).
UIViewController *viewController = [[UIViewController alloc] init];
// view
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 140, 130)];
viewController.view = view;
[view release];
AppController *app = (AppController*)[[UIApplication sharedApplication] delegate];
UINavigationController *nav = [app navController];
[nav pushViewController:viewController animated:YES];
[viewController release];
Run Code Online (Sandbox Code Playgroud)
我在苹果开发者文档中搜索了相关的想法,但我发现没有什么用处.在显示之前,UIViewController是如何处理其视图框架属性的?我在哪里可以找到有用的文档.
谢谢.
更新:事实上,代码来自cocos2d-iphone DirectorTest:https://github.com/cocos2d/cocos2d-iphone/blob/release-2.0-rc1/tests/DirectorTest.m#L143
你错了 - 你真的需要阅读(并理解)Apple的UIViewController文档:
如果要在视图控制器的代码中创建视图,则应该在视图控制器的loadView方法中进行.
直接来自Apple的文档:
以编程方式创建视图
如果您更喜欢以编程方式创建视图... 您可以通过覆盖视图控制器的loadView方法来实现.您对此方法的实现应执行以下操作:
创建根视图对象.根视图包含与视图控制器关联的所有其他视图.您通常会为此视图定义框架以匹配应用程序窗口的大小,应用程序窗口本身应填充屏幕.但是,框架将根据视图控制器的显示方式进行调整.请参阅"查看控制器视图调整大小".
您可以使用通用UIView对象,您定义的自定义视图,或任何其他可以缩放以填充屏幕的视图.
创建其他子视图并将其添加到根视图.对于每个视图,您应该执行以下操作:
创建并初始化视图.对于系统视图,通常使用initWithFrame:方法指定视图的初始大小和位置.使用addSubview:方法将视图添加到父视图.将根视图分配给视图控制器的view属性.
| 归档时间: |
|
| 查看次数: |
9256 次 |
| 最近记录: |