web-dev-qa-db-fra.com

Comment adapter la barre d'état ios13?

Lorsque j'exécute mon projet sur ios13 xcode11 beta.

[UIApplication sharedApplication].statusBarFrame.size.height

le code renvoie 0.

que dois-je faire pour l'adapter à ios13?

3
Sunxb

Fichier 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

Comme Peter noté sur Tamarous's answer, la propriété keyWindow est déconseillée, mais en supposant que vous utilisez une seule fenêtre, vous pouvez également utiliser:

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

Si vous aviez besoin d'accéder à la fenêtre nth, vous pouvez le faire de la même manière:

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