如何设置UIViewController“扩展边缘”属性

时间:2013-09-18 14:42:13

标签: ios uiviewcontroller ios7

我在Storyboard中看到以下选项,用于在navBars / tabBars下扩展UIViewController视图的边缘:

enter image description here

但是如何在代码中为我的所有ViewControllers全局设置这些属性?与手动检查/取消选中Storyboard中的每个ViewController相反。

3 个答案:

答案 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;