2014-04-04 76 views
1

我在應用程序中使用MBProgressHUD以使應用程序在等待網絡時更加清晰。帶有進度的iOS網絡活動指示器HUD

我的應用程序充斥着對MBProgressHUD的調用。

實施例:

[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    [User findBy:@{@"email": email} success:^(NSDictionary *user) { 
     [MBProgressHUD hideHUDForView:self.view animated:YES]; 

所以每次網絡呼叫被包裹在一個MBprogress顯示,然後隱藏。有一個更清潔的方式。

我想在全球範圍內做到這一點,這樣當有網絡活動時,HUD就會啓動,當它停止時,HUD將關閉。

我該如何讓HUD模仿iPhone網絡活動指標正在做什麼?

我沒有看到任何API。

注意:我正在使用AFNetworking 2.0

回答

1

它應該很簡單。

  1. 你需要找到的全部或大部分要求使用(可能在您的實現AFnetworking請求的「頂」最方法。
  2. 使用的應用程序窗口呈現HUD這樣就能呈現它從你AFNetworking類只此2種方法添加到您的類 -

    + (MBProgressHUD *)showNetworkHUDWithTitle:(NSString *)title { 
         UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject]; 
         [MBProgressHUD hideAllHUDsForView:window animated:YES]; 
         MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES]; 
         hud.labelText = title; 
         return hud; 
        } 
    
        + (void)dismissNetworkHUD { 
         UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject]; 
         [MBProgressHUD hideHUDForView:window animated:YES]; 
        } 
    

您還可以檢查MBProgressHUD的一個「節目的同時,」方法 -

- (id)showAnimated:(BOOL)animated whileExecutingBlock :(dispatch_block_t)block;

- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block completionBlock:(MBProgressHUDCompletionBlock)completion; 

- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block onQueue:(dispatch_queue_t)queue; 

- (void)showAnimated:(BOOL)animated whileExecutingBlock:(dispatch_block_t)block onQueue:(dispatch_queue_t)queue 
      completionBlock:(MBProgressHUDCompletionBlock)completion; 

這樣,hud將在執行結束時消失。

+0

我已經使用全局代碼將調用移動到模型。這更好,但理想情況下,我希望mbprogress hud代碼只設置一次。未在每種模型網絡方法中設置。我可以爲模型創建一個父網絡類來繼承,然後從那裏調用mbprogress,但是我沒有辦法知道何時關閉mbprogress。即:我沒有看到來自AFNetworking的委託回調。我可以將3個成功/失敗塊調用鏈接在一起,例如:NetworkObject - > ModelObject - > ControllerObject,並且這種方式可以通過回調來關閉MBBprogress,但這似乎很麻煩。 – djburdick

+0

已更新我的回答 – shannoga

+0

嗨@djburdick幫助過嗎? – shannoga