[英]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
應該很簡單。
AFnetworking
請求的實現中。 使用應用程序窗口顯示平視顯示器,以便您可以從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.