1

データを取得するために Web サービスを呼び出すアプリがあります。アプリが Web サービス データを取得しているときに表示されるアクティビティ インジケーターを追加したいと考えています。他の投稿を調べましたが、投稿が推奨するとおりにやっていると思いますが、インジケーターが画面に表示されません。Web サービス呼び出しを行うオブジェクトは stateGauges です。これが私のコードです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIActivityIndicatorView *activityStatus = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(120, 230, 50, 50)];
    activityStatus.center = self.view.center;
    [self.view addSubview:activityStatus];
    [activityStatus bringSubviewToFront:self.view];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = TRUE;

    [activityStatus startAnimating];
    stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateIdentifier andType:nil];
    [activityStatus stopAnimating];
}

助言がありますか?ありがとう!Ⅴ

4

3 に答える 3

0

テイクアウト

[activityStatus bringSubviewToFront:self.view];

ドキュメントによると bringSubviewToFront:

指定されたサブビューを移動して、兄弟の上に表示されるようにします。

これはあなたが望むものではありません。(代わりに別の回答が提案されてい[self.view bringSubviewToFront:activityStatus]ます..それは問題ありませんが、一般的にこの呼び出しは冗長です.b / c [self.view addSubview:activityStatus]は、とにかくself.view subviews配列のビューの最後にactivityStatusを追加します)

それでもうまくいかない場合は、基本的にアニメーションを開始した直後にブレークポイントを置き、コンソールに次のように入力します。

[[activityStatus superview] recursiveDescription]

recursiveDescriptionは UI ツリー グラフを提供し、基本的に activityIndi​​cator ビューがどこにあるかを正確に示します。何かについて間違った仮定をしている可能性があります。

于 2013-10-11T14:41:40.587 に答える