大家好,我想在代码中隐藏状态栏。 加载视图后,状态栏将显示,它会一段时间后自动隐藏。 怎么做?
Answer 1:
你想要UIApplication
的setStatusBarHidden: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