[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

Amazon Book Marker 取り下げ

昨日2010/01/16(土)の朝に米Amazonより、ライセンス規約に違反していると警告がきたため

記事を読む

no image

自作iPhoneアプリ いろいろレビュー依頼

アプリ制作日誌 #app_24: iPhoneアプリのレビューを、寄稿・依頼できるサイトまとめ。 と

記事を読む

[iOS SDK] 文字列をローカライズする際に使える awk スクリプト

iOSで文字列をローカライズする際に Localizable.strings ファイルに "ロ

記事を読む

no image

App Storeでのアプリ最低価格が突然115円から85円に 2011/07/14

App Storeでのアプリ最低価格が突然日本時間2011/07/14(木)未明に115円から85円

記事を読む

EverLearn 1.7.2 を公開しました

英単語学習用アプリ EverLearn 1.7.2 を公開しました (2015/10/22)TOEF

記事を読む

no image

LogLocations iOS7 不具合調査 (startMonitoringSignificantLocationChanges 挙動変更)

LogLocations のユーザの方から、iOS7 になってからLogLocationsでログが保

記事を読む

no image

iPhone 4S は Bluetooth 4.0 採用。G-SHOCK GB-6900 が使えるとよいのだが

アップル - iPhone - 比較 によると確かに iPhone 4S から Bluetooth

記事を読む

Apple Developer Program 更新2016

そろそろ期限が切れるので、Apple Developer Program - Apple Devel

記事を読む

Parse から Heroku, AWSへの移行ガイド

2017年1月28日にParseのサービスが終了するという衝撃的なニュース(Moving On)

記事を読む

[iOS SDK] 消音モードでも音を再生する対応を入れました

昔、 iPhone/iPad はサイレントモードにしても音が鳴る という記事を書いたけれども

記事を読む

Message

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

TUNEWEAR ALMIGHTY DOCK nano1 USB3.2 5in1ハブ を買ってみた

ちょうどiPhone のリストアを実行中で、2時間程度かかっていたた

Apple Developer Program 更新 2022

今年も Apple Developer Programを更新した。こ

M1 MacBook Air を macOS Monterey にアップデート

Xcode 13.3 アップデート するために、macOS

Xcode 13.3 アップデート

iPhone 11 Pro Max の iOSを15.4に上げてしま

[Apple Event]最高峰を解禁。

2022/03/09 3:00AM JST にApple Event

→もっと見る

PAGE TOP ↑