我在Storyboard中看到以下选项,用于在navBars / tabBars下扩展UIViewController视图的边缘:
但是如何在代码中为我的所有ViewControllers全局设置这些属性?与手动检查/取消选中Storyboard中的每个ViewController相反。
答案 0 :(得分:66)
iOS7中有几个新属性可以控制这些设置。
edgesForExtendedLayout
告诉应该扩展哪些边缘(左,右,上,下,全,无或任何组合)。延伸底部边缘等于“Under Bottom Bars”勾选,延伸顶部边缘等于“Under Top Bars”勾选。
extendedLayoutIncludesOpaqueBars
告诉边缘是否应该在不透明条形下自动延伸。因此,如果将这两个设置组合在一起,就可以模仿代码中任何界面构建器滴答的组合。
答案 1 :(得分:13)
如果您不想扩展到任何边缘,只需添加:
let viewController = UIViewController()
viewController.edgesForExtendedLayout = []
答案 2 :(得分:3)
在Objective-C中:
- (void) viewDidLoad {
[super viewDidLoad];
[self initVars];
}
- (void) initVars {
self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeRight | UIRectEdgeBottom;
self.extendedLayoutIncludesOpaqueBars = YES;
}
您想要的属性是:
self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeBottom;