1

使用有错吗

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 替换为状态栏的高度。

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

4

1 回答 1

0

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

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

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

于 2011-07-19T14:30:48.137 回答