在显示之前获取状态栏的高度?

时间:2016-05-12 19:45:03

标签: ios ios9 uistatusbar

我的应用程序中有一个视图,可以根据需要显示或隐藏状态栏,并对过渡进行动画处理。当扩展状态栏处于活动状态时,它会向下推动我的视图20pt和屏幕外。

要解决这个问题,我需要在显示之前检测状态栏的高度,并触发动画来调整视图的大小:

- (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];
}

如何显示状态栏的高度?

1 个答案:

答案 0 :(得分:-2)

你可以试试这个:

CGRectGetHeight([UIApplication sharedApplication].statusBarFrame);