[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //顯示 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; //隱藏 讓狀態欄顯示網絡等待標志 狀態欄是可以通過UIApplication類提供的一些方法來修改的,比如完全去掉狀態欄或者修改風格,不過這些改變只是在你的程序內部,當你退出你的程序又會復原。 UIApplication *myApp = [UIapplication sharedApplication]; 1.隱藏狀態欄 [myApp setStatusBarHidden:YES animated:YES]; 記得隱藏狀態欄後的你的“桌面”就增加320×20的大小,所以最好是在任何window或者view創建之前隱藏它。 2.狀態欄風格 [myApp setStatusBarStyle: UIStatusbarStyleBlackOpaque]; typedef enum { UIStatusBarStyleDefault, UIStatusBarStyleBlackTranslucent, UIStatusBarStyleBlackOpaque } UIStatusBarStyle; 3.狀態欄方向 [myApp setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO]; typedef enum { UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait, //豎屏,垂直向上 UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown, //豎屏,垂直方向上下顛倒 UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight, //設備逆時針旋轉到橫屏模式 UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft //設備順時針旋轉到橫屏模式 } UIInterfaceOrientation; 有時候,需要在狀態欄上顯示一些自定義信息,比如新浪微博的官方iOS客戶端:告知用戶信息處於發送隊列、發送成功或者發送失敗。 為此,我們顯得定義一個自定義狀態欄類,包含一個顯示信息的Label: @interface CustomStatusBar : UIWindow { UILabel *_messageLabel; } - (void)showStatusMessage:(NSString *)message; - (void)hide; @end 接著,設置大小和系統狀態欄一致,背景為黑色: self.frame = [UIApplication sharedApplication].statusBarFrame; self.backgroundColor = [UIColor blackColor]; 到這裡,為了讓自定義的狀態欄可以讓用戶看到,還需要設置它的windowLevel。 在iOS中,windowLevel屬性決定了UIWindow的顯示層次。默認的windowLevel為UIWindowLevelNormal,即0.0。 系統定義了三個層次如下,具體可參考官方文檔: [cpp] const UIWindowLevel UIWindowLevelNormal; const UIWindowLevel UIWindowLevelAlert; const UIWindowLevel UIWindowLevelStatusBar; typedef CGFloat UIWindowLevel; 為了能夠覆蓋系統默認的狀態欄,我們把自定義的狀態欄的windowLevel調高點: [cpp] self.windowLevel = UIWindowLevelStatusBar + 1.0f; 最後,為顯示信息和隱藏添加一點無傷大雅的動畫: [cpp] - (void)showStatusMessage:(NSString *)message { self.hidden = NO; self.alpha = 1.0f; _messageLabel.text = @""; CGSize totalSize = self.frame.size; self.frame = (CGRect){ self.frame.origin, 0, totalSize.height }; [UIView animateWithDuration:0.5f animations:^{ self.frame = (CGRect){ self.frame.origin, totalSize }; } completion:^(BOOL finished){ _messageLabel.text = message; }]; } - (void)hide { self.alpha = 1.0f; [UIView animateWithDuration:0.5f animations:^{ self.alpha = 0.0f; } completion:^(BOOL finished){ _messageLabel.text = @""; self.hidden = YES; }];;