[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

派生クラスを変更し忘れて半日はまる

こんなコードを書いて半日はまっていた。 SettingViewController は UITa

記事を読む

no image

Admob に関して少し調べてみた

iPhoneアプリとAndroidアプリでAdmobを使って広告を表示してみているが、いまだに管理画

記事を読む

[iOS SDK] EverLearn 3Dタッチ対応

iPhone 7 Plus を購入したので、まずは EverLearn から、3Dタッチの対応を行い

記事を読む

安くなったPFUのSnapLiteを買ってみた

昔からほしかったが高くて手が出なかったPFUのSnapLiteが2018年3月に販売終了になったらし

記事を読む

no image

iPhone向け有償・無償フレームワーク

かごおた さんで、iPhone アプリ開発で使用できる有償・無償フレームワークが紹介されていた。 有

記事を読む

[iOS] 取り下げになったアプリを更新

しばらく更新していなかったら App Store から取り下げになった「タッチにほんちず」アプ

記事を読む

Clime もうすぐ発送?

自分以外に注目している人を見たことがない Clime だが、メールでせかしていたらもうすぐ発送してく

記事を読む

no image

[iPhone SDK] View Based Application で NIB(XIB)ファイルを削除してみる

iPhoneアプリ開発に慣れてくると、段々Interface Builderを使わなくなってくる。

記事を読む

no image

iOSアプリの Ad Hoc 配布の悪夢から解放される TestFlight

面倒だった Adhoc 版のやりとりを格段に楽にしてくれる TestFlight | つくる社LL

記事を読む

no image

自作アプリ おんぷちゃん にランキングモードを追加

かなり前からほそぼそと準備を続けていた、五線譜学習アプリ おんぷちゃんへのランキング挑戦モード追加

記事を読む

Message

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

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

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

Vision Pro カバーケースを買ってみた

[itemlink post_id="11629"]

→もっと見る

PAGE TOP ↑