[UIApplication sharedApplication].statusBarFrame.size.height
. Mais comme toutes les tailles sont en points et non en pixels, la hauteur de la barre d'état est toujours égale à 20.
Mettre à jour. Voyant cette réponse jugée utile, je devrais élaborer.
La hauteur de la barre d'état est en effet égale à 20,0 points, sauf dans les cas suivants:
- la barre d'état a été masquée avec la
setStatusBarHidden:withAnimation:
méthode et sa hauteur est égale à 0,0f points;
- comme @Anton l'a souligné ici, lors d'un appel entrant en dehors de l'application Téléphone ou pendant la hauteur de la barre d'état de la session d'enregistrement sonore est égale à 40,0 points.
Il y a aussi un cas de barre d'état affectant la hauteur de votre vue. Normalement, la hauteur de la vue est égale à la dimension de l'écran pour une orientation donnée moins la hauteur de la barre d'état. Toutefois, si vous animez la barre d' état (afficher ou à masquer) après le point de vue a été montré, la barre d'état changera son cadre, mais la vue ne sera pas , vous devrez redimensionner manuellement la vue après l' animation de la barre d'état (ou pendant l' animation depuis la hauteur de la barre d'état prend la valeur finale au début de l'animation).
Mise à jour 2. Il y a aussi un cas d'orientation de l'interface utilisateur. La barre d'état ne respecte pas la valeur d'orientation, donc la valeur de la hauteur de la barre d'état pour le mode portrait est [UIApplication sharedApplication].statusBarFrame.size.height
(oui, l'orientation par défaut est toujours portrait, peu importe ce que dit votre application info.plist), pour le paysage - [UIApplication sharedApplication].statusBarFrame.size.width
. Pour déterminer l'orientation actuelle de l'interface utilisateur lorsqu'elle est en dehors de UIViewController
et self.interfaceOrientation
n'est pas disponible, utilisez [UIApplication sharedApplication].statusBarOrientation
.
Mise à jour pour iOS7. Même si le style visuel de la barre d'état a changé, il est toujours là, son cadre se comporte toujours de la même manière. La seule découverte intéressante sur la barre d'état je me suis - part I: votre UINavigationBar
« s carrelage fond sera également carrelée à la barre d'état, de sorte que vous pouvez obtenir des effets de design intéressant ou tout simplement la couleur de votre barre d'état. Cela n'affectera pas non plus la hauteur de la barre d'état.