如何在iOS 7中用动画隐藏状态栏?
自从iOS 7推出以来,我无法像iOS 6那样用动画显示或隐藏状态栏。 现在我使用NSTimer来控制何时隐藏 这是我的密码:如何在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
- (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中基本上什么都不做。再次感谢。