簡體   English   中英

具有進度HUD的iOS網絡活動指示器

[英]iOS network activity indicator with progress HUD

我在應用程序中使用MBProgressHUD,以便在應用程序等待網絡時向用戶更清楚地顯示信息。

我的應用充滿了對MBProgressHUD的調用。

例:

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

因此,每個網絡呼叫都被包裝在MBprogress節目中,然后隱藏。 必須有一種更清潔的方法。

我想在全球范圍內執行此操作,以便在有網絡活動時HUD會打開,在HUD停止時會關閉HUD。

如何使HUD模仿iPhone網絡活動指示器的功能?

我沒有為此找到任何API。

注意:我正在使用AFNetworking 2.0

應該很簡單。

  1. 您需要找到所有或大多數請求使用的“最熱門”方法(可能是在AFnetworking請求的實現中。
  2. 使用應用程序窗口顯示平視顯示器,以便您可以從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)動畫,而ExecutingBlock:(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;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM