9

我有兴趣在我的应用程序中实现左侧菜单,为此我使用了 NVSlideMenuController。它工作正常。

但我想修改它。我想用 contentViewController 滑动状态栏,不想在 MenuViewController 上显示状态栏。

目前它看起来像下图

在此处输入图像描述

我想和下图一样

在此处输入图像描述

提前致谢

4

4 回答 4

11

您可以尝试在第二张图像上关闭 3G,您会注意到状态栏没有更新。

这似乎是iOS7中的一个新api

[[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO];

这可能是你问的同一个问题,并且有一个演示来展示你想要什么。

在 iOS 7 中移动状态栏

于 2013-10-07T23:22:25.560 回答
2

您可以通过链接 keyWindow 的框架来做到这一点(您可以使用[[UIApplication sharedApplication] keyWindow](UIWindow是 的子类UIView) 来获得它。这应该使所有内容都正确,并且您可能需要制作另一个UIWindow以从左侧添加其他内容。

于 2013-10-07T20:09:02.523 回答
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看看什么看起来最好。共有三个值:UIStatusBarAnimationNoneUIStatusBarAnimationFade和 UIStatusBarAnimationSlide 。

于 2013-10-01T16:33:54.407 回答
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) 

按照克里斯的链接到西蒙的答案就可以了

于 2013-10-15T09:09:35.177 回答