[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.
Mise à jour. Puisque cette réponse est considérée comme utile, je devrais élaborer.
La hauteur de la barre d'état est, en effet, égale à 20.0f points sauf les cas suivants :
- La barre d'état a été cachée avec
setStatusBarHidden:withAnimation:
et sa hauteur est égale à 0,0f points ;
- comme l'a fait remarquer @Anton, pendant un appel entrant en dehors de l'application Téléphone ou pendant une session d'enregistrement sonore, la hauteur de la barre d'état est égale à 40.0f points.
Il y a aussi le cas de la barre d'état qui affecte 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 (en l'affichant ou en la masquant) après que la vue a été affichée, la barre d'état changera de 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, car la hauteur de la barre d'état prend sa valeur finale au début de l'animation).
Mise à jour 2. Il y a aussi une question d'orientation de l'interface utilisateur. La barre d'état ne respecte pas la valeur de l'orientation, donc la valeur de la hauteur de la barre d'état pour l'option portrait le mode est [UIApplication sharedApplication].statusBarFrame.size.height
(oui, l'orientation par défaut est toujours le portrait, peu importe ce que dit votre info.plist d'application), pour paysage - [UIApplication sharedApplication].statusBarFrame.size.width
. Pour déterminer l'orientation actuelle de l'interface utilisateur lorsqu'elle se trouve à l'extérieur de l'espace de travail. UIViewController
y 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é, elle est toujours là, son cadre se comporte toujours de la même manière. La seule découverte intéressante que j'ai faite au sujet de la barre d'état - je la partage : votre UINavigationBar
's carreaux L'arrière-plan de la barre d'état sera également étalé sur la barre d'état, ce qui vous permettra d'obtenir des effets de conception intéressants ou de colorer votre barre d'état. Cela n'affectera pas non plus la hauteur de la barre d'état.