2011年11月30日水曜日

UIActivityIndicatorViewの使い方

重い処理を実行するときは、UIActivityIndicatorViewを表示して動作中であることを示した方がいい。

UIActivityIndicatorView *indicator=[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:style];
表示位置は適当で良いが、viewのど真ん中に出す場合はこんな感じ
    CGRect frame;
    frame.origin=CGPointZero;
    frame.size.width=37;
    frame.size.height=37; // インジケーターのサイズ
    indicator.frame=frame;
    indicator.center=view.center;
    [view addSubview:indicator];

    [indicator startAnimating];
UIActivityIndicatorViewはRunLoopに戻らないと表示されないので、一瞬戻す。
これが非常に重要。
本来は、重い処理毎別スレッドにして並行動作させる事を意図しているから、こうなっているのかもしれない。
    [[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.0]]

    ~重い処理~
    [indicator stopAnimating];
    [indicator removeFromSuperview]; // 外す
    [indicator release];
iOS5からは色を付けられるようになった。
(iOS4まではbackgroundColorだけ。)
IB上で色を設定しててもiOS4上では無視される。







0 件のコメント:

コメントを投稿