代码之家  ›  专栏  ›  技术社区  ›  Kevin Sylvestre

UIView不尊重UINavigationController中“loadView”中的帧

  •  2
  • Kevin Sylvestre  · 技术社区  · 15 年前

    我有以下代码片段:

    - (void)loadView {
        self.view = [[UILabel alloc] initWithFrame:CGRectMake(20.0, 20.0, 40.0, 40.0)];
        self.view.backgroundColor = [UIColor blackColor];
    }
    

    如果我在使用主视图控制器中的“基于视图的应用程序”创建的项目中运行代码片段,则一切都将按预期工作。但是,如果我在使用“基于导航的应用程序”创建的项目中运行它,则标签将填充屏幕(不考虑大小)。如何修复在导航控制器中显示的行为?谢谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   tia    15 年前

    导航视图控制器会将视图控制器的视图调整到显示区域,因此您描述的行为是正常的和按设计的。通常,我们在层次结构的顶部使用空的UIView,并将子视图放在内部,这在您的例子中是UILabel。