如何在iOS 7中用动画隐藏状态栏?

如何在iOS 7中用动画隐藏状态栏?,ios,ios7,statusbar,Ios,Ios7,Statusbar,自从iOS 7推出以来,我无法像iOS 6那样用动画显示或隐藏状态栏。 现在我使用NSTimer来控制何时隐藏 这是我的密码: - (void)hideStatusBar{ _isStatusBarHidden=YES; [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]; } - (void)showStatusBar{ _isStatusBarHidden=NO; [self performS

自从iOS 7推出以来,我无法像iOS 6那样用动画显示或隐藏状态栏。 现在我使用NSTimer来控制何时隐藏

这是我的密码:

- (void)hideStatusBar{
    _isStatusBarHidden=YES;
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
- (void)showStatusBar{
_isStatusBarHidden=NO;
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
    //===================
 _controlVisibilityTimer = [[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(hideStatusBar:) userInfo:nil repeats:NO] retain];
但不幸的是,状态栏隐藏的方式似乎有点粗糙,并没有消失。有人能解决这个问题吗

更新 我用@hahaha解决方案解决了隐藏问题。我只需要一个视图作为状态栏的背景,这是我的代码

AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];

self.StatusBarOrange = [[UIView alloc] initWithFrame:CGRectMake(0, 0, appDelegate.window.frame.size.width, 20)];    
[self.StatusBarOrange setBackgroundColor:[UIColor orangeColor]];
[appDelegate.window.rootViewController.view addSubview:self.StatusBarOrange];
现在一切都很完美

你需要打电话

[UIViewController setNeedsStatusBarAppearanceUpdate];
从动画块内,如以下示例所示:

@implementation SomeViewController {
    BOOL _statusBarHidden;
}

- (BOOL)prefersStatusBarHidden {
    return _statusBarHidden;
}

- (void)showStatusBar:(BOOL)show {
 [UIView animateWithDuration:0.3 animations:^{
        _statusBarHidden = !show;
        [self setNeedsStatusBarAppearanceUpdate];
    }];
}

@end

+1用于更新您的最终解决方案!谢谢你的贡献!你知道这一点真是太神奇了,谢谢!似乎setStatusBarHidden:YES在iOS5中基本上什么都不做。再次感谢。