人, 我想隐藏代码中的状态栏。加载视图后,状态栏将显示,并在一段时间后自动隐藏。怎么做?
答案 0 :(得分:3)
答案 1 :(得分:0)
尚未对其进行测试,可能有更好的方法,但如果您将以下内容放入加载视图功能中:
[self performSelector:@selector(hideNavBar) withObject:nil afterDelay:0.0];
然后有这个功能
-(void) hideNavBar {
if (self.navigationController.navigationBar.hidden == NO)
{
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
}
您可能必须隐藏视图动画块中的导航栏。但有些组合应该有效
退房 link
答案 2 :(得分:0)
当appDidBecommeActive(“加载视图后”)时,您可以在AppDelegate中执行此操作。 使用UIView动画块在400ms后设置隐藏状态并计算根视图控制器的导航栏
// 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)”
答案 3 :(得分:0)
您必须选择项目并在标题常规,Hide during application launch
部分中选择Deployment Info
,如下所示:
在info.plist中,将View controller-based status bar
设置为NO: