在状态栏iOS 7上添加UIView横幅

我正在尝试在收到应用内推送通知时在状态栏上添加横幅。 从我一直在阅读,似乎dynamic更改iOS 7中的状态栏风格的唯一方法是将UIViewControllerBasedStatusBarAppearance设置为NO 。 这不仅是真的很烦人,必须改变我所有不同的视图控制器prefersStatusBarHidden[UIApplication sharedApplication].statusBarHidden ,但它也没有给我所期待的效果。

当横幅从顶部滑动时,我仍然希望状态栏提供的20点空间停留,但状态栏内容消失,直到横幅滑回。 有没有办法做到这一点或在状态栏上方添加子视图或窗口?

基本上我正在寻找这样做:

Facebook Messenger推送横幅

创build一个新窗口,并将横幅视图添加到该窗口。 当你需要显示横幅时,可以设置yourwindow.hidden = NO; 您可以进一步添加animation来显示它并closures它yourwindow.hidden = YES;

这里的关键是设置yourwindow.windowLevel = UIWindowLevelStatusBar+1;

这将确保您的横幅视图和您的yourwindow始终显示在状态栏之上。

随意提出有关上述任何问题。

把你的视图控制器上面的状态栏:

 [[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelStatusBar+1]; 

把你的视图控制器放在状态栏后面:

 [[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelNormal];