2016-05-12 1 views
0

Il existe une vue dans mon application où la barre d'état peut être affichée ou masquée à la demande et la transition est animée. Lorsque la barre d'état étendue est active, elle affiche ma vue 20pt vers le bas et hors écran.Obtenir la hauteur de la barre d'état avant qu'elle ne s'affiche?

Pour résoudre ce problème, je dois détecter la hauteur de la barre d'état avant qu'elle ne montre, et déclencher une animation pour redimensionner la vue:

- (BOOL)prefersStatusBarHidden { 
    return _statusHidden; 
} 

- (BOOL)prefersStatusBarUpdateAnimation { 
    return UIStatusBarAnimationSlide; 
} 

- (void)showStatusBar:(CGFloat)delay { 
    _statusHidden = NO; 

    // how do I set this value? 
    CGFloat extendedStatusBarHeight = ??? - 20; 

    [UIView animateWithDuration:0.2f delay:delay options:0 animations:^{ 
     [self setNeedsStatusBarAppearanceUpdate]; 
     self.wrapper.frame = CGRectMake(x,y,w,h - extendedStatusBarHeight) 
    } completion:nil]; 
} 

Comment puis-je obtenir la hauteur de la barre d'état avant d' montre?

+0

oui, il retourne 0 – Cbas

Répondre

-2

Vous pouvez essayer ceci:

CGRectGetHeight([UIApplication sharedApplication].statusBarFrame); 
+0

qui retourne 0 jusqu'à ce que la barre d'état affiche – Cbas