NavBars/tabBarsの下のUIViewControllerのビューの端を拡張するために、ストーリーボードに次の選択が表示されます。
しかし、コード内のすべてのViewControllersに対してこれらのプロパティをグローバルに設定するにはどうすればよいですか? StoryboardのすべてのViewControllerで手動でチェック/チェック解除するのとは対照的です。
IOS7には、これらの設定を制御するための新しいプロパティがいくつかあります。
edgesForExtendedLayout
は、どのエッジを拡張する必要があるかを示します(左、右、上、下、すべて、なし、またはそれらの任意の組み合わせ)。下部エッジを延長すると「下部バーの下」の目盛りに等しくなり、上部エッジを延長すると「上部バーの下」の目盛りに等しくなります。
extendedLayoutIncludesOpaqueBars
は、エッジを不透明なバーの下に自動的に延長するかどうかを示します。したがって、これらの2つの設定を組み合わせると、コード内のインターフェイスビルダーティックの任意の組み合わせを模倣できます。
エッジまで拡張したくない場合は、追加するだけです:
let viewController = UIViewController()
viewController.edgesForExtendedLayout = []
Objective-Cの場合:
- (void) viewDidLoad {
[super viewDidLoad];
[self initVars];
}
- (void) initVars {
self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeRight | UIRectEdgeBottom;
self.extendedLayoutIncludesOpaqueBars = YES;
}
必要なプロパティは次のとおりです。
self.edgesForExtendedLayout = UIRectEdgeTop | UIRectEdgeBottom;