32

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

在此处输入图像描述

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

4

3 回答 3

78

iOS7 中有几个新属性可以控制这些设置。

edgesForExtendedLayout告诉应该扩展哪些边(左、右、上、下、全部、无或这些的任意组合)。扩展底部边缘等于“Under Bottom Bars”刻度,扩展顶部边缘等于“Under Top Bars”刻度。

extendedLayoutIncludesOpaqueBars告诉边缘是否应该在不透明条下自动延伸。因此,如果您将这两个设置结合起来,您就可以在代码中模拟界面构建器刻度的任何组合。

于 2013-09-24T06:58:27.777 回答
17

如果您不想扩展到任何边缘,只需添加:

let viewController = UIViewController()
viewController.edgesForExtendedLayout = []
于 2016-11-02T23:24:39.957 回答
3

在 Objective-C 中:

- (void) viewDidLoad {
   [super viewDidLoad];
   [self initVars];
}

- (void) initVars {
   self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeRight | UIRectEdgeBottom;
   self.extendedLayoutIncludesOpaqueBars = YES;
}

您想要的属性是:

self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeBottom;
于 2018-02-21T09:29:58.087 回答