[iPhone SDK] 処理中の表示に便利 MBProgressHUD
今作っている位置情報通知アプリで、送信にそれなりに時間がかかるので、送信中には単なるUIActivityIndicatorViewによるぐるぐる表示だけではなく、モーダルダイアログ的なものを表示したいと考えた。
自分で作るのはおっくうだと思っていたら、MBProgressHUD なるものがMOONGIFTで紹介されていたので、利用してみた。
組み込みは MBProgressHUD.h と MBProgressHUD.m をプロジェクトに追加するだけなのでとても簡単だ。
今回は NSURLConnection でデータを送信しており、送信終了は – (void)connectionDidFinishLoading:(NSURLConnection *)connection で受け取っている。
このため、MBProgressHUD のサンプルプログラムそのままでは使えないのだが、StackOverflow で使い方が紹介されていたので参考にしたらさくっと導入できた。
これは便利。
1 2 3 4 5 6 7 8 | mbProcess=[[MBProgressHUD alloc] initWithView:self.view]; mbProcess.labelText=@ "Loading Data" ; [self.view addSubview:mbProcess]; [mbProcess setDelegate:self]; [mbProcess show:YES]; ... // 処理が終わったところで [mbProcess hide:YES]; |
delegateの実装も忘れずに。
1 2 3 4 5 6 7 | // 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 に実装すればうまくいく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | - ( 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 が見つかった。
単純に処理中表示を出したいのであればこちらの方が簡単そう。
関連記事
-
-
iPhoneアプリ おんぷちゃんアップデート 2010年7月 第1回
先月、iPhoneアプリおんぷちゃん(無料版)を1.3にアップデートして、いくつか機能を追加しました
-
-
iPad, iPhone, Mac, PC で使える Line6 Mobile Keys
今年のCESで発表されて以来ずっと待っていたLine6のMobile Keysがついに発売される。こ
-
-
iOS9からGKSession over Bluetoothが無効に
ユーザの方からおんぷ先生アプリが接続できないという報告があり調べていたところ、iOS9からGameK
-
-
EDAMTimestamp と NSDate の相互変換
Evernote SDKを使ったアプリで EDAMTimestamp を DBに格納する前に NSD
-
-
iPhoneとBluetooth連携できる体重計 タニタ RD-900
iPhone と連携できる体重計には以前から興味があって、Withings の WS-30 を狙って
-
-
EverLearn 1.8.0をリリースしました
以前から、iOSから英単語をPebbleに転送できるアプリを作っていましたが、今回はPebbleの画
-
-
無料版アプリの効果について
最近いくつかiPhoneアプリの無料版の提供に関してのブログが上がって、考えさせられている。 fla
-
-
ようやくAppStore に Submit
@ITの 日本人がつまずかないためのiPhone開発ポイント を読みながらAppStoreにアプリ公
-
-
Pebble E-Paper Watch 届いた! 感想。
追記: Pebble 向けにアプリを作りました。 Kickstarter で iPhone/A
-
-
おんぷちゃん for iPad 1.3.3 Submit
今回は紅白歌合戦を見ながらSubmit。 相変わらずうちの娘が譜読みに苦労していて新しい曲を弾く
- PREV
- MacOSで動画で画面をキャプチャ iShowU HD
- NEXT
- かいけつゾロリ 作品名一覧