我有以下代码片段:
- (void)loadView {
self.view = [[UILabel alloc] initWithFrame:CGRectMake(20.0, 20.0, 40.0, 40.0)];
self.view.backgroundColor = [UIColor blackColor];
}
如果我在使用主视图 Controller 中的“基于 View 的应用程序”创建的项目中运行代码片段,一切都会按预期工作。但是,如果我在使用“基于导航的应用程序”创建的项目中运行它,标签将填充屏幕(不考虑尺寸)。如何修复在导航 Controller 中呈现的行为?谢谢!
最佳答案
导航 View Controller 会将 View Controller 的 View 调整为显示区域的大小,因此您描述的行为是正常的且是设计使然的。通常,我们在层次结构的顶部使用空的 UIView,并将 subview 放在里面,在您的例子中是 UILabel。
关于iphone - UIView 不尊重 UINavigationController 中 'loadView' 中的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176647/