使用viewController.view = newView而不是[viewController.view addSubView:newView]是错误的;

时间:2010-01-08 10:58:31

标签: uiview viewcontroller

使用

是不对的

viewController.view = newView;

而不是

[viewController.view addSubView:newView];

第一个删除了viewControllers自动创建的视图的附加级别,如果我像这样创建newView

UIView * newView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 或者像这样 UIView * newView = [[UIView alloc] initWithFrame:self.view.frame];

addSubview将frame.origin.y替换为状态栏的高度。

是否有人知道使用或不使用任何一种方法的原因?

1 个答案:

答案 0 :(得分:0)

你为什么要这样做?如果要创建自定义界面,则应在ViewControllers的-viewDidLoad方法中添加子视图。
我不建议在-loadView方法之外设置VC的视图。

当您添加子视图并且希望它与VC视图的大小完全相同时,您不应该使用applicationFrame。

我宁愿使用[[UIView alloc] initWithFrame:self.view.frame];
此外,您应确保应用自动调整遮罩(灵活的宽度和高度),以防边界发生变化。例如,当在弹出框中显示VC时会发生这种情况。