0

伙计们,我想在代码中隐藏状态栏。加载视图后,状态栏会显示,一段时间后会自动隐藏。怎么做?

4

4 回答 4

3

你想要UIApplicationsetStatusBarHidden:withAnimation:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

请参阅文档

于 2012-07-07T05:25:57.150 回答
0

您必须选择您的项目并Hide during application launch在标题 General 中选择,Deployment Info如下所示:

在此处输入图像描述

在 info.plist 中设置View controller-based status bar为 NO:

在此处输入图像描述

于 2014-02-03T23:31:46.647 回答
0

尚未对其进行测试,可能有更好的方法,但是如果您将以下内容放入加载视图函数中:

[self performSelector:@selector(hideNavBar) withObject:nil afterDelay:0.0];

然后有这个功能

-(void) hideNavBar {
    if (self.navigationController.navigationBar.hidden == NO)
    {
        [self.navigationController setNavigationBarHidden:YES animated:YES];
    }
}

您可能必须在视图动画块中隐藏导航栏。但一些组合应该有效

查看 链接

于 2012-07-07T05:19:29.230 回答
0

当 applicationDidBecommeActive (“加载后的视图”)时,您可以简单地在 AppDelegate 中执行此操作。在 400 毫秒后设置隐藏状态,使用 UIView 动画块并计算您的根视图控制器的导航栏

// AppDelegate.m

#import "AppDelegate.h"
#import "SomeViewController.h"

@interface AppDelegate ()
@property (nonatomic, strong) SomeViewController *someViewController;
@end

@implementation AppDelegate

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    UINavigationBar *navBar = self.someViewController.navigationController.navigationBar;
    if (![[UIApplication sharedApplication] isStatusBarHidden]) {
       [[UIApplication sharedApplication] setStatusBarHidden:YES
                                               withAnimation:UIStatusBarAnimationSlide];
       [UIView animateWithDuration:0.4
                        animations:^{
                            navBar.frame = CGRectMake(navBar.frame.origin.x, 0, navBar.frame.size.width, navBar.frame.size.height);
                     } completion:nil];
    }
}

@end

就是这样,“加载视图(didBecomeActive)后,状态栏将显示并在一段时间后自动隐藏(400ms)”

于 2013-05-03T18:51:21.277 回答