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

Uiview 使用viewController.view=newView而不是[viewController.view addSubView:newView]是否错误;,uiview,viewcontroller,Uiview,Viewcontroller,使用它是错误的吗 viewController.view=newView 而不是 [viewController.view addSubView:newView] 第一个删除了ViewController自动创建的视图的附加级别,如果我这样创建newView UIView*newView=[[UIView alloc]initWithFrame:[[UIScreen mainScreen]applicationFrame]]; 还是像这样 UIView*newView=[[UIView allo

使用它是错误的吗

viewController.view=newView

而不是

[viewController.view addSubView:newView]

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

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

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


有人知道使用或不使用这两种方法的原因吗?

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

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

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