使用
是不对的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替换为状态栏的高度。
是否有人知道使用或不使用任何一种方法的原因?
答案 0 :(得分:0)
你为什么要这样做?如果要创建自定义界面,则应在ViewControllers的-viewDidLoad方法中添加子视图。
我不建议在-loadView方法之外设置VC的视图。
当您添加子视图并且希望它与VC视图的大小完全相同时,您不应该使用applicationFrame。
我宁愿使用[[UIView alloc] initWithFrame:self.view.frame];
此外,您应确保应用自动调整遮罩(灵活的宽度和高度),以防边界发生变化。例如,当在弹出框中显示VC时会发生这种情况。