[iPhone SDK] 処理中の表示に便利 MBProgressHUD

公開日: : 最終更新日:2012/01/14 iPad, iPhone ,

今作っている位置情報通知アプリで、送信にそれなりに時間がかかるので、送信中には単なるUIActivityIndicatorViewによるぐるぐる表示だけではなく、モーダルダイアログ的なものを表示したいと考えた。
自分で作るのはおっくうだと思っていたら、MBProgressHUD なるものがMOONGIFTで紹介されていたので、利用してみた。
組み込みは MBProgressHUD.h と MBProgressHUD.m をプロジェクトに追加するだけなのでとても簡単だ。

今回は NSURLConnection でデータを送信しており、送信終了は – (void)connectionDidFinishLoading:(NSURLConnection *)connection で受け取っている。
このため、MBProgressHUD のサンプルプログラムそのままでは使えないのだが、StackOverflow で使い方が紹介されていたので参考にしたらさくっと導入できた。
これは便利。

mbProcess=[[MBProgressHUD alloc] initWithView:self.view];
mbProcess.labelText=@"Loading Data";
[self.view addSubview:mbProcess];
[mbProcess setDelegate:self];
[mbProcess show:YES];
...
// 処理が終わったところで
[mbProcess hide:YES];

delegateの実装も忘れずに。

// delegate の処理を書く必要がある
#pragma mark -
#pragma mark MBProgressHUDDelegate methods
- (void)hudWasHidden {
    // Remove HUD from screen when the HUD was hidded
    [mbProcess removeFromSuperview];
    [mbProcess release];
}

MBProgressHUDのサンプルプログラムの動作の様子はこちら。

追記 : 2010/10/11

UITableView を表示する際に MBProgressHUD を表示したいことはよくありそうだ。
Loading screen in TableView – iPhone Dev SDK Forumが参考になる。
自分もはまったが、-(void)viewDidAppear:(BOOL)animated に実装すればうまくいく。

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
		
	// The hud will dispable all input on the view
    HUD = [[MBProgressHUD alloc] initWithView:self.view];
	
    // Add HUD to screen
    [self.view addSubview:HUD];
	
    // Regisete for HUD callbacks so we can remove it from the window at the right time
    HUD.delegate = self;
	
    HUD.labelText = @"Loading";
	
    // Show the HUD while the provided method executes in a new thread
    [HUD showWhileExecuting:@selector(doTimeConsumingJob) onTarget:self withObject:nil animated:YES];
}

追記: 2012/01/14

かなり久しぶりにMBProgressHUDを使おうと思ったらすっかり忘れていて、もっと簡単に使えるものがないか調べてみたところ SVProgressHUD が見つかった。
単純に処理中表示を出したいのであればこちらの方が簡単そう。

関連記事

no image

[iPhone開発のネタ帳] loadView, viewDidLoad と viewDidUnload 2011/08/12

拙作のiPadアプリ タッチ!にほんちず や タッチ!ヨーロッパ地図でUIWebViewContro

記事を読む

no image

[iPhone SDK] UINavigationBar にボタンを追加する

自作アプリでUIWebViewを使ってWebを表示しているが、戻る・進むボタンをUINaviga

記事を読む

no image

開発をサポートできませんでした。

久しぶりにiPod touch 初代を MacBook に接続したら、「開発をサポートできませんで

記事を読む

EverLearn-Pebble

EverLearn 1.8.0をリリースしました

以前から、iOSから英単語をPebbleに転送できるアプリを作っていましたが、今回はPebbleの画

記事を読む

no image

iPhone&Androidアプリ内課金プログラミング完全ガイド

こんなマニアックな本が11月に出ていたらしい。 立ち読みしてよさそうだったら買ってこよう。 売れ

記事を読む

no image

はじめてのiPhoneプログラミング 正誤表

発売されてからすぐ はじめてのiPhoneプログラミング を購入し、必要に応じて少しずつ読み進めてい

記事を読む

no image

「サンプルプログラムでマスターする iPhone SDK」 の感想

2009年9月に発売された本。 iPhone SDK 3.0 リリース後に書かれた本なので、3.

記事を読む

no image

最近読んだ本: iOS デバッグ&最適化技法 2011/06/26

発売されたことは知っていたが、とりあえず必要としてなかったのでずっと買わずにいた、iOSデバッグ&最

記事を読む

no image

iPad用ケース TUNESHELL for iPad

iPadは使ってないとき机の上に置くと意外に場所を取る。どう置くかは工夫のしどころだと思われる。 ま

記事を読む

Apple Developer Program 更新 2017

今年も Developer Program を更新。今年は11800円+税だった。そして証明書も更新

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

→もっと見る

PAGE TOP ↑