Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2010年06月24日

アクティビティ インジケータをThreadで表示する



networkActivityIndicatorVisibleやUIActivityIndicatorViewなどは、Thread内で動作させる。
通常、networkActivityIndicatorVisibleはUIWebViewでWebページをロードしているときに表示させるものだが、UIActivityIndicatorViewなどのアクティビティ インジケータを別の用途で使用する場合、例えば、forループ中にアクティビティ インジケータを表示させる場合、同一スレッドではforループが終了するまで表示されない。このため、別スレッドを作ってそのなかで表示させる。

■スレッドの呼び出し側
-(void)hogeAction {
// スレッドを作る
[NSThread detachNewThreadSelector:@selector(activityIndicatorThread)
toTarget:self
withObject:nil];

----
forループ処理
----
----

// アクティビティ インジケータを非表示にする
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}



■スレッド処理
- (void)activityIndicatorThread {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

// アクティビティ インジケータを表示する
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

[pool release];
}



1. hogeActionメソッドでスレッド(activityIndicatorThread)を作って起動し、activityIndicatorThreadのなかで、アクティビティ インジケータを表示する。

2. hogeActionメソッド内でforループが終了すると、アクティビティ インジケータは非表示となる。
 

■参考記事
http://www.iphoneexamples.com/
 
タグ:iPhone
posted by mobileDeveloper at 23:17 | Comment(0) | TrackBack(0) | NSThread はてなブックマーク - アクティビティ インジケータをThreadで表示する | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。