一、始終隱藏狀態欄
如果在App中需要狀態欄一直是隱藏着的,可以在<YOUR_APP>AppDelegate的application:didFinishLaunchingWithOptions:
函數中進行設置,比如下面這段示意代碼可以讓狀態欄以淡出的方式隱藏起來:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [application setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; // Add the view controller's view to the window and display. [self.window addSubview:viewController.view]; [self.window makeKeyAndVisible]; return YES; }
二、APP啟動時隱藏狀態欄
用了上面的方法之后,App在運行過程中,狀態欄確實被隱藏起來了,但是我發現在App啟動的那個瞬間,還是可以看到狀態欄的,然后一閃即過。雖然時間很短暫,看着還是很不舒服。為了讓狀態欄從啟動的時候就隱藏起來,可以修改<YOUR_APP>-Info.plist。如果在Xcode中修改,在根結點Infomation Property List下面新加一項“Status bar is initially hidden”(不用手動輸入,可以直接在下拉菜單中選取)。這是個BOOL類型的鍵值,將Value欄中的復選框勾選上即可。
三、在運行程序過程中隱藏狀態欄
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
實例:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. flag = 0; UIView *view = [[UIControl alloc]init]; view.backgroundColor = [UIColor redColor]; [(UIControl *)view addTarget:self action:@selector(touchpicture:) forControlEvents:UIControlEventTouchUpInside]; [view setFrame:CGRectMake(0, 0, 320, 480)]; [self.view addSubview:view]; }
-(void)touchpicture:(UIView *)sender{ if (flag == 0) { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; flag = 1; }else { [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; flag = 0; } }