autoLayout
またはinterface-builder
を使用せず、すべてコードでアプリを開発しました。 iPhone X
を除くすべてのiPhones
で正常に実行されます。トップバーは中央の新しい黒いものの下に留まります。
コードでその高さを取得することは可能ですので、Navigationbar
をその高さにシフトし、すべて正常に実行できますか?
私が見る解決策は、自動レイアウトを使用しています。
距離を下げてシフトダウンしたいだけです。
Swiftアプリでは、ステータスバーのframe
を取得します
スウィフト:UIApplication.shared.statusBarFrame
Objective-C:[UIApplication sharedApplication].statusBarFrame
これはCGRect
なので、その上でsize.height
を実行することで高さを取得できます。したがって、完全に、Objective-Cでこれを実行できます。
[UIApplication sharedApplication].statusBarFrame.size.height
ステータスバーの非表示の有無にかかわらず、いつでもステータスバーの高さを取得できます。
UIApplication.shared.keyWindow!.safeAreaInsets.top
およびホーム画面インジケータ
UIApplication.shared.keyWindow!.safeAreaInsets.bottom
風景の場合、値は変わります
safeAreaLayoutGuide
もあります