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?
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)
}
}
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;