你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> ios狀態欄操作

ios狀態欄操作

編輯:關於IOS
[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; 
    }];; 


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved