ただし、iPhone Xのディスプレイは4.7インチディスプレイよりも145pt高く、コンテンツの縦方向のスペースは約20%増加します。
詳細については、Apple ドキュメント および here1 および here2 の詳細な説明からiphone X用のHIGを入手してください
ステータスバーの高さ
以前20pt、現在44pt
ディスプレイ上部のセンサーにより、新しいステータスバーは2つの部分に分かれています。あなたのUIがそのスペースで何か特別なことをしているなら(以前は20ポイント、今は44ポイント)、それはiPhone X上ではより高くなるからです。高さを動的に変更できることを確認してください。素晴らしいことは、ユーザーが電話をかけたりナビゲーションアプリケーションを使用したりしても高さが変わらないことです。これは以前は他のiPhoneの場合でした。
ポートレート
通常のナビゲーションバーの高さ88および長いタイトル時間140
風景
含まれているView ControllerのsafeAreaInsets
にview
を使用して、プログラムでナビゲーションバーの高さを取得できます。
let navBarHeight = view.safeAreaInsets.top
これは、それが大きなタイトルナビゲーションバーであるかどうか、そしてそれに接続された検索バーがあるかどうかを説明するでしょう。
詳しくは safeAreaInsets
のドキュメント をご覧ください。
次の方法で簡単に入手できます(Swift 3)。
let barHeight = navigationController?.navigationBar.frame.maxY
正しい値を取得するには、prefersLargeTitles
を設定した後に必ずそれを呼び出すようにしてください。
navigationController?.navigationBar.prefersLargeTitles = false
ナビゲーションバーの.frameプロパティを使用して、トップバー領域の全体の高さを把握することができます。
目的:
CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.Origin.y;
これはちょっとしたカンニングのことだと思いますが、ナビゲーションバーの高さとy Originを追加すると、デバイスに関係なく正しい合計の高さになります。
Apple Docsには仕様がありません
によると Geoff Hackworth その88
ナビゲーションタイトルの種類:
IOS 11のナビゲーションバーを増やす
navigationController?.navigationBar.prefersLargeTitles = true