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

问题描述:

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

viewController.view = newView;

而不是

[viewController.view addSubView:newView];

第一去除自动创建视图viewControllers的附加电平,并且如果我创建NewView的这样

的UIView * NewView的= [[UIView的页头] initWithFrame:方法[[UIScreen mainScreen] applicationFrame]]; 或者像这样 UIView * newView = [[UIView alloc] initWithFrame:self.view.frame];

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

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

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

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

我宁愿使用[[UIView alloc] initWithFrame:self.view.frame];
另外,如果边界发生变化,您应该确保应用自动调整掩码(灵活宽度为&高度)。例如,在弹出窗口中显示VC时会发生这种情况。