0

UITableview を作成し、アクティビティ インジケーターを UITableview のサブビューとして追加しました。私が欲しいのは、テーブルが読み込まれる前に、そのアクティビティ インジケーターが一瞬アニメーション化することです。テーブルが読み込まれると、アクティビティ インジケーターが消えます。私はこれらの方法を使用しています:

[spinner startAnimating];
[spinner stopAnimating];

問題は、テーブルが iPhone に読み込まれる前に、アクティビティ インジケーターがアニメーション化されないことです。しかし、このメソッドを削除すると:

[spinner stopAnimating];

テーブルがロードされた後、アクティビティ インジケータはアニメーション化されたままになります。

Iphone でテーブルをロードする前に、アニメーション化されたアクティビティに対して何をするか教えてください

4

7 に答える 7

3

[spinner stopAnimating];戻ってくる最後の行に入れます。

LastRow は両方[tableView numberOfRowsInSection: 0] - 1またはどちらでもかまいませ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row.ん。したがって、コードは次のようになります。

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
        //end of loading
        [spinner stopAnimating];
    }
}
于 2012-11-06T09:35:30.127 に答える
0

viewWillAppear でアクティビティ インジケーターを開始します

[activityIndicator startAnimating];

次に、このようにviewDidAppearで停止します

[activityIndicator performSelector:@selector(stopAnimating) withObject:nil afterDelay:1];

それが役立つことを願っています!

于 2012-11-06T09:37:19.847 に答える
0

viewDidLoad {}メソッドを追加[spinner startAnimating];し、最後に呼び出すメソッドを記述します。!!!![spinner stopAnimating];

于 2012-11-06T09:37:45.910 に答える
0

この問題は、テーブルをロードするときに発生するメイン スレッドのブロックが原因で発生します。したがって、アクティビティ アニメーションは、テーブルがロードされた後に実行されるようにキューに入れられます。ベスト プラクティスは、バックグラウンド スレッドでアニメーション化することです。

[activityIndicator performSelectorInBackground:@selector(startAnimating) withObject:self];

以下のコードの使用を停止するには

[activityIndicator performSelectorInBackground:@selector(stopAnimating) withObject:self];
于 2012-11-06T09:40:48.003 に答える
0

これを試して。

-(void)viewDidLoad
{
    [super viewDidLoad];

//... all your previous charge.

UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];

activity.hidesWhenStopped = YES;



[yourTable addSubview:activity];

[activity startAnimating];

[activity performSelector:@selector(stopAnimating) withObject:nil afterDelay:0.5];

            }
于 2012-11-06T09:51:55.737 に答える
0
put your [spinner stopAnimating]; in cell for row at index path before returning cell.
于 2012-11-06T09:31:24.440 に答える
0

始めること

app = [UIApplication sharedApplication];
    app.networkActivityIndicatorVisible = YES;

止まる

app = [UIApplication sharedApplication];
    app.networkActivityIndicatorVisible = NO;
于 2012-11-06T09:33:14.220 に答える