iOSはiPhoneX / iphone11 / iphone12ナビゲーションバーの高さ(ノッチ画面)を適応させます



Ios Adapts Iphonex Iphone11 Iphone12 Navigation Bar Height



ナビゲーションバーの高さの以前の適応(Liu Haiping)は、デバイスタイプによって決定され、デバイスをx、11、または12と判断した後、ナビゲーションバーの高さを88に設定します。しかし、これには欠点があります。つまり、多くのデバイスタイプコードを記述する必要があり、Appleはデバイスの判断を追加する必要があります~~

これで、ステータスバーの高さでナビゲーションバーの高さを設定できます。私たちが通常話しているナビゲーションバーは、実際にはステータスバー+ナビゲーションバーです。

ナビゲーションバー(話し言葉)=ステータスバー+ナビゲーションバー(実際のナビゲーションバー)

ナビゲーションバー:CGRect rectNav = 自己 .navigationController.navigationBar.frame

ステータスバー:CGRect statusRect = [[UIApplication sharedApplication] statusBarFrame]

コードから、ナビゲーションバーの高さは常に44であり、ステータスバーの高さはモデルごとに異なることがわかります(iphone6sは20、iphone8Pは20、iphone11は48、iphone12は47 ...)

多くのテストの結果、劉海萍を搭載した携帯電話のステータスバーは20を超えているため、ステータスバーの高さはステータスバーの高さで設定できます。コードは次のように表示されます。

+( BOOL )supportFaceID {

//ステータスバーの高さを取得します

浮く statusHeight = [[UIApplication sharedApplication] statusBarFrame] .size.height

もし (statusHeight> 20){

戻る はい

} そうしないと {{

戻る しない

}

}

友人は、ナビゲーションバーの高さを決定するために必要な場合にこのメソッドを呼び出します。はいは88、いいえは44です。

別のコードのスクリーンショットを投稿する

(注:さまざまなLiu Haiping電話のステータスバー+ナビゲーションバーの最終的な高さは88ではありませんが、記述と適応の便宜のために、一律に88に設定しています)