如何隐藏加载后,自动状态栏(How to hide status bar automatically

2019-10-28 14:51发布

大家好,我想在代码中隐藏状态栏。 加载视图后,状态栏将显示,它会一段时间后自动隐藏。 怎么做?

Answer 1:

你想要UIApplicationsetStatusBarHidden:withAnimation:

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

请参阅该文档 。



Answer 2:

没有测试过,有可能是一个更好的办法,但如果你把下面在负荷视图功能:

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

再有此功能

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

您可能需要隐藏视图中的动画块的导航栏。 但有些组合应该工作

退房链接



Answer 3:

你可以简单地做在你的AppDelegate,当applicationDidBecommeActive(“加载视图后”)。 设置隐藏状态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),状态栏将显示,它会经过一段时间(400毫秒)自动隐藏”



Answer 4:

你必须选择你的项目,并选择Hide during application launch标题一般,部分内部Deployment Info是这样的:

而里面的Info.plist设置的View controller-based status bar为NO:



文章来源: How to hide status bar automatically after load view