web-dev-qa-db-ja.com

iPhone Xのトップバーの高さは?

IPhone Xのトップバーの正確な高さを知りたいのですが、iPhone Xのステータスバーとナビゲーションバーの高さを教えてください。助けてください。

enter image description here

53
IKKA

ただし、iPhone Xのディスプレイは4.7インチディスプレイよりも145pt高く、コンテンツの縦方向のスペースは約20%増加します。

詳細については、Apple ドキュメント および here1 および here2 の詳細な説明からiphone X用のHIGを入手してください

enter image description here

ステータスバーの高さ

以前20pt、現在44pt

ディスプレイ上部のセンサーにより、新しいステータスバーは2つの部分に分かれています。あなたのUIがそのスペースで何か特別なことをしているなら(以前は20ポイント、今は44ポイント)、それはiPhone X上ではより高くなるからです。高さを動的に変更できることを確認してください。素晴らしいことは、ユーザーが電話をかけたりナビゲーションアプリケーションを使用したりしても高さが変わらないことです。これは以前は他のiPhoneの場合でした。

enter image description here

ポートレート

通常のナビゲーションバーの高さ88および長いタイトル時間140

  • 標準タイトル - 44pt(ステータスバー付き88pt)
  • ラージタイトル - 140ポイント
  • 下のバー - 34ポイント

風景

  • 標準タイトル - 32pt
  • 下のバー - 21ポイント
77
Anbu.Karthik

ナビゲーションバーは通常通り44pt(大きなタイトルがない場合)で、ステータスバーは20ptから44ptに増えました。これを確認するためにデバッガに入力できるものを次に示します。

enter image description here

25
skensell

含まれているView ControllerのsafeAreaInsetsviewを使用して、プログラムでナビゲーションバーの高さを取得できます。

let navBarHeight = view.safeAreaInsets.top

これは、それが大きなタイトルナビゲーションバーであるかどうか、そしてそれに接続された検索バーがあるかどうかを説明するでしょう。

詳しくは safeAreaInsetsのドキュメント をご覧ください。

11
Paolo

次の方法で簡単に入手できます(Swift 3)。

let barHeight = navigationController?.navigationBar.frame.maxY

正しい値を取得するには、prefersLargeTitlesを設定した後に必ずそれを呼び出すようにしてください。

navigationController?.navigationBar.prefersLargeTitles = false
9

ナビゲーションバーの.frameプロパティを使用して、トップバー領域の全体の高さを把握することができます。

目的:

CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth  = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.Origin.y;

これはちょっとしたカンニングのことだと思いますが、ナビゲーションバーの高さとy Originを追加すると、デバイスに関係なく正しい合計の高さになります。

9
jkira

Apple Docsには仕様がありません

Apple Docs

によると Geoff Hackworth その88

ナビゲーションタイトルの種類:

  • 標準タイトル
  • 大タイトル

IOS 11のナビゲーションバーを増やす

navigationController?.navigationBar.prefersLargeTitles = true
4
Harshal Valanda