Objective-C (iOS): 読み込み中表示を MBProgressHUD で

MBProgressHUD 概要

・読み込み中表示
・ローディング進捗
・読み込み完了表示

などのふわっと出てくる HUD を作れる Pod

リファレンス

 

Podfile

platform :ios, '6.0'
pod 'MBProgressHUD', '~> 0.8'

 

使用例

window で実行することでどこからでも消しやすいようにすると良さそう。

同期的に実行する場合(意図的に 3 秒待たせる場合)

// 同期実行 3 秒待って実行
UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
float sec = 3.0f;
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.dimBackground = YES;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, sec * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    
    // なんかする
    
    [MBProgressHUD hideHUDForView:window animated:YES];
});

エロいバックグラウンド処理してから戻す場合

UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];
[MBProgressHUD showHUDAddedTo:window animated:YES];
// グローバルキュー(バックグラウンド)を取得、並列実行する (プライオリティ: 0
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    
    // なんかする
    
    // メインスレッドへ
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:window animated:YES];
    });
});