アプリでグルグル画像(indicator)をIBを使わずに簡単に表示させる方法
未だにInterface Builderが使い慣れていないので、objective-cのみで
表示をさせる。
UIActivityIndicatorView を使う
UIActivityIndicatorView クラスを subview に追加して、startAnimating するだけ。
サンプル
@interface MyView : UIView - (void)stop; @end #define INDICATOR_TAG 100 @implementation MyView - (MyView *)init { // 大きさを指定してインスタンスを生成 UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)]; // 画面の真ん中の表示するように設定 [activityIndicator setCenter:CGPointMake(160.0f, 240.0f)]; // 色を設定 [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite]; // あとで取り出せるようにタグを設定 activityIndicator.tag = INDICATOR_TAG; // subview に追加する [self addSubview:activityIndicator]; // グルグルスタート [activityIndicator startAnimating]; // 解放 [activityIndicator release]; } // 何か処理を行って、準備できたらこれを呼ぶ - (void)stop { // タグ指定で追加したUIActivityIndicatorViewを取得する UIActivityIndicatorView *activityIndicator = (UIActivityIndicatorView *)[[self superview] viewWithTag:INDICATOR_TAG]; // グルグルストップ [activityIndicator stopAnimating]; // 解放 [activityIndicator release]; } @end
適当な解説
クラスインスタンスとして変数を用意してもいいんだけど、ずっと必要なわけではないので
一時変数に格納し、止めるときはタグを利用してターゲットを取得するようにする。
setActivityIndicatorViewStyle に設定できるのは以下。ぐるぐるの色を設定する。
typedef enum {
UIActivityIndicatorViewStyleWhiteLarge,
UIActivityIndicatorViewStyleWhite,
UIActivityIndicatorViewStyleGray,
} UIActivityIndicatorViewStyle;
UIActivityIndicatorView は、startAnimating をすると見えるようになり
逆に stopAnimating をすると見えなくなる。
グルグルしつつ Loading... みたいな文字はどうやってだすのか不明。
たぶんこれはIBでやればいけるんだろうなぁと思ってる。