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

Mik*_*e V 24 objective-c ios ios7 ios7-statusbar

我正在尝试在收到应用内推送通知时在状态栏上方添加横幅.从我一直在阅读的内容看来,动态更改iOS 7中状态栏样式的唯一方法是设置UIViewControllerBasedStatusBarAppearanceNO.这不仅是真的很烦不得不改变我的所有不同的视图控制器prefersStatusBarHidden[UIApplication sharedApplication].statusBarHidden,但它也没有给我找的效果.

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

基本上我想要这样做:

Facebook Messenger推横幅

Nic*_*ico 46

要将视图控制器置于状态栏上方:

[[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelStatusBar+1];
Run Code Online (Sandbox Code Playgroud)

要将视图控制器置于状态栏后面:

[[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelNormal];
Run Code Online (Sandbox Code Playgroud)


dez*_*ync 34

创建一个新窗口并将标题视图添加到该窗口.当您需要显示横幅时,您可以设置yourwindow.hidden = NO;您可以进一步添加动画以显示它并将其关闭yourwindow.hidden = YES;.

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

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

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