これは、
ActivityIndicatorを表示させる場合、
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
ActivityIndicatorを消去する場合、
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;で実装できる。
但し、これは画面最上部(バッテリ残、キャリア、3G/WiFi表示)に表示される。
利用者にネットワークアクセス中であることを、もっとはっきり明示する方法として、UIActivityIndicatorViewを使用し、半透明の画面を親画面の上に被せて(addView)表示する方法がある。その実装コード。
hoge.h
@interface hoge : UIViewController {
UIView* loadingView; // 処理中インジケータ画面
UIActivityIndicatorView* indicator; // 処理中インジケータ
}
@property (nonatomic, retain) UIView *loadingView;
@property (nonatomic, retain) UIActivityIndicatorView *indicator;
@end
hoge.m
#import "hoge.h"
@implementation hoge
@synthesize loadingView;
@synthesize indicator;
- (void)netAccessStart {
// ネットワークアクセスインジケータON(画面中央)
loadingView = [[UIView alloc] initWithFrame:[[self view] bounds]];
[loadingView setBackgroundColor:[UIColor blackColor]];
[loadingView setAlpha:0.5];
indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[[self view] addSubview:loadingView];
[loadingView addSubview:indicator];
[indicator setFrame:CGRectMake ((320/2)-20, (480/2)-60, 40, 40)];
[indicator startAnimating];
}
- (void)netAccessEnd {
// 画面中央の処理中インジケータ表示OFF
[indicator stopAnimating];
[loadingView removeFromSuperview];
}
- (void)dealloc {
[loadingView release];
[indicator release];
}
タグ:iPhone