0

iOS 6 用に開発されたアプリがいくつかありますが、当面は 6 と 7 の両方で動作する必要があります (将来的に 6 を削除するまで)。すべてのビューはプログラムで生成されます。UIViewControllerネストされた insideの場合UINavigationController、これをに追加して、下にあるビューのジオメトリを修正するのはかなり簡単です。viewDidLoad

if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

しかしviewController、ナビゲーション バーなしで直接表示される "裸" の場合、各ビュー (少なくともハードコードされframe.origin.yた値を持つもの) をステータス バーの高さで明示的にオフセットする必要がありますが、これはかなり効率が悪いようです。この状況を処理するためのより適切な方法はありますか?

4

1 に答える 1

0

Autolayouts を使用する場合は、(iOS7 で導入された) のプロパティとを確認topLayoutGuideする必要があります。ビュー コントローラーがコンテナー ビュー コントローラー (ナビゲーション コントローラーなど) にネストされていない場合も、ケースを処理します。bottomLayoutGuideUIViewController

トップレイアウトガイド

BottomLayoutGuide

于 2013-09-30T13:02:17.007 に答える