我有兴趣在我的应用程序中实现左侧菜单,为此我使用了 NVSlideMenuController。它工作正常。
但我想修改它。我想用 contentViewController 滑动状态栏,不想在 MenuViewController 上显示状态栏。
目前它看起来像下图
我想和下图一样
提前致谢
我有兴趣在我的应用程序中实现左侧菜单,为此我使用了 NVSlideMenuController。它工作正常。
但我想修改它。我想用 contentViewController 滑动状态栏,不想在 MenuViewController 上显示状态栏。
目前它看起来像下图
我想和下图一样
提前致谢
您可以尝试在第二张图像上关闭 3G,您会注意到状态栏没有更新。
这似乎是iOS7中的一个新api
[[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO];
这可能是你问的同一个问题,并且有一个演示来展示你想要什么。
您可以通过链接 keyWindow 的框架来做到这一点(您可以使用[[UIApplication sharedApplication] keyWindow]
(UIWindow
是 的子类UIView
) 来获得它。这应该使所有内容都正确,并且您可能需要制作另一个UIWindow
以从左侧添加其他内容。
您将无法移动状态栏。你能做的最好的就是为那个视图控制器隐藏它:
- (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 。
这不是答案,而是对詹姆斯答案的回复,因为格式会在评论中中断。
事实是,设置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)