2014-04-04 44 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