我有兴趣在我的应用程序中实现左侧菜单我已经使用了NVSlideMenuController。它工作正常。
但我想修改它。我想用contentViewController滑动状态栏,不想在MenuViewController上显示状态栏。
目前它看起来像下面的图像
我希望和下面的图像一样
提前致谢
答案 0 :(得分:11)
您可以尝试在第二张图片上关闭3G,您会注意到statusBar没有更新。
它似乎是 iOS7
中的新api[[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO];
这可能与您提出的问题相同,并且有一个演示可以显示您想要的内容。
答案 1 :(得分:2)
你可以通过链接keyWindow的框架来实现这一点(你可以通过[[UIApplication sharedApplication] keyWindow]
得到这个(UIWindow
是UIView
的子类)。这应该可以使一切正确,你可能需要另外制作UIWindow
来从左边开出其他东西。
答案 2 :(得分:1)
您无法移动状态栏。您可以做的最好是为该视图控制器隐藏它:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if (animated)
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
else
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
}
- (void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if (animated)
{
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
}
else
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
}
尝试使用UIStatusBarAnimation
的不同值来查看最佳效果。有三个值:UIStatusBarAnimationNone
,UIStatusBarAnimationFade
和UIStatusBarAnimationSlide`。
答案 3 :(得分:0)
这不是答案,而是回答詹姆斯的答案,因为格式在评论中断了。
事实是,设置keyWindow的框架将无法移动状态栏。通过设置断点并打印出keyWindow递归描述,我们会注意到里面没有状态栏信息。
(lldb) po [[[UIApplication sharedApplication] keyWindow] recursiveDescription]
<UIWindow: 0x8c5bf80; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x8c5c500>; layer = <UIWindowLayer: 0x8c5c0a0>>
| <UIView: 0x8b49700; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x8b496b0>>
(lldb)