web-dev-qa-db-ja.com

ios13ステータスバーを適応させる方法は?

Ios13 xcode11ベータ版でプロジェクトを実行すると、.

[UIApplication sharedApplication].statusBarFrame.size.height

コードは0を返します。

それをios13に適応させるにはどうすればよいですか?

3
Sunxb

SceneDelegate.Swiftファイル

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    guard let windowScene = (scene as? UIWindowScene) else { return }
    if let statusBarFrame = windowScene.statusBarManager?.statusBarFrame {
        print(statusBarFrame)
    }
}
0
Yogesh Makwana

PeterTamarous'sの回答に記載されているように、keyWindowプロパティは非推奨ですが、単一のウィンドウを使用しているという前提で、代わりに使用できます。

CGSize statusBarSize = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size

nthウィンドウにアクセスする必要がある場合は、同様の方法でアクセスできます。

NSInteger i = 0;
CGSize statusBarSize = [UIApplication sharedApplication].windows[i].windowScene.statusBarManager.statusBarFrame.size;
0
Shaun