web-dev-qa-db-ja.com

iOS 7のナビゲーションバーの高さは?

デフォルトのマスター詳細テンプレートを使用して、シンプルなiOS 7アプリを作成しました。

MasterViewController.mviewDidAppearメソッドでは、

self.navigationController.navigationBar.frame.size.height
self.navigationController.navigationBar.frame.Origin.y

それに応じて44と20を受け取りました。私が読んだことから、iOS 7のナビゲーションバーは64ポイントの高さであり、0ポイントから始まり、ステータスバーの下にあるはずなので、これは奇妙に思えます。私が読んだのは

1) iOS 7 UI移行ガイド

ステータスバーは透明なので、その背後のビューは透けて見えます

2) ナビゲーションバーで背景画像を使用

アプリがバーの背景としてカスタム画像を使用している場合、ステータスバーの背後に広がるように「より高い」画像を提供する必要があります。ナビゲーションバーの高さが44ポイント(88ピクセル)から64ポイント(128ピクセル)に変更されます。

69
onmyway133

IOS 7のプログラミングの本、棒の位置と棒のメトリックのセクションからこの答えを得ました

ナビゲーションバーまたはツールバー、または検索バー(この章で前述)が画面の上部を占める場合、iOS 7の規則では、透明なステータスバーの下に重なるように高さを増やす必要があります。これを可能にするために、iOS 7ではバー位置の概念を導入しています。

IBarPositionTopAttached

バーが画面の上部にあることと、そのビューを含むことを指定します。この位置のバーは、背景を上方に引き伸ばして描画し、背景コンテンツがステータスバーに表示されるようにします。 iOS 7.0以降で利用可能。

8
onmyway133

ナビゲーションバーとステータスバーには違いがあります。紛らわしい部分は、画面上部の1つのしっかりした機能のように見えますが、実際には領域を2つの異なるビューに分割できることです。ステータスバーとナビゲーションバー。ステータスバーの範囲はy = 0〜y = 20ポイントで、ナビゲーションバーの範囲はy = 20〜y = 64ポイントです。そのため、ナビゲーションバー(ページタイトルとナビゲーションボタンが配置される場所)の高さは44ポイントですが、ステータスバーとナビゲーションバーの合計の高さは64ポイントです。

IOS7のその他のサイジングの特徴に加えて、この質問に対処する優れたリソースを次に示します。 http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/

90
poff