[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 が見つかった。
単純に処理中表示を出したいのであればこちらの方が簡単そう。

関連記事

Apple Event 2016秋 See you on the 7th

2016秋のApple Eventは 2016/09/07(日本時間 9/8 2:00)に行われた。

記事を読む

iOS16でaurioTouch の inBufferFramesが1になる

https://developer.apple.com/library/archive/sampl

記事を読む

no image

iPad/iPad2 収納ケース Built Neoplene Envelope

iPad を買って以来使い続けているBuiltのケースです。 Netbook Envelope とい

記事を読む

no image

スティーブ・ジョブズの王国 ― アップルはいかにして世界を変えたか?

Amazonからおすすめされてたまたま発見した本。2010年11月12日発売らしい。 原書はRetu

記事を読む

no image

UITableViewCell セルの再利用の問題

設定画面に他の自作アプリ情報を加えたりしようと思い、UITableViewController で1

記事を読む

Everio で撮影した動画を写真袋で公開する

年末に奥さんが Victor Everio GZ-HM670 で撮影した長女のバレエ動画を写真袋で

記事を読む

no image

[iTunes Connect] Price End Date には安売りの終わる次の日を入れるべき

App Store では、ランキングに現れないアプリは存在しないも同然、という話がある。 App

記事を読む

no image

基礎から学ぶ CoronaSDK

基礎から学ぶ CoronaSDK という本が2012/2/25にでるらしい。 昔 CoronaSDK

記事を読む

no image

新しい iPad の感想

昨日2012/03/16(金)は新しいiPadの発売日。 早速買って会社に持ってきた人がいたので、手

記事を読む

no image

[iOS SDK] Pebble腕時計対応iOSアプリを作る

英単語学習アプリ WordLearnをリリースしましたに書いたけれども今Pebble腕時計対応iOS

記事を読む

Message

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

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

Break Back 22巻まで読了

テニス漫画と言えば、ベイビーステップスだと思っていたし、全巻持ってい

TORRAS iPhone 16 Pro Max用ケース

自分はiPhoneはケースを付けない派で、iPhone 12

iPhone 16 Pro Max 購入

iPhone 16 Pro Max 256GB 189000

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

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

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

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

→もっと見る

PAGE TOP ↑