如何在iphone中的表视图加载后停止uiactivityindicator动画

时间:2012-11-06 09:28:50

标签: iphone objective-c ios

我创建了UITableview,并在UITableview上添加了一个活动指示器作为子视图。我想要的是该活动指示器在表加载之前动画片刻。表加载后,激活指示应该消失。 我正在使用这些方法:

[spinner startAnimating];
[spinner stopAnimating];

问题是在iPhone上加载表之前,活动指示器没有动画。但是如果我删除这个方法:

[spinner stopAnimating];

然后在加载表后,活动指示器仍然是动画的。

告诉我,在Iphone上加载表之前,我对动画活动做了什么

7 个答案:

答案 0 :(得分:3)

将你的[spinner stopAnimating];放回到lastrow。

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];
    }
}

答案 1 :(得分:0)

put your [spinner stopAnimating]; in cell for row at index path before returning cell.

答案 2 :(得分:0)

开始

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

停止

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

答案 3 :(得分:0)

在viewWillAppear中启动您的活动指标

[activityIndicator startAnimating];

然后在viewDidAppear中停止它,就像这样

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

希望有帮助!

答案 4 :(得分:0)

viewDidLoad {} 方法中添加[spinner startAnimating]; 并在你最后调用的方法中写[spinner stopAnimating];! !!!!

答案 5 :(得分:0)

由于在加载表时主线程上发生阻塞而导致问题发生,因此活动动画排队等待在表加载后执行。最佳做法是在后台线程中对其进行动画处理。

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

停止使用以下代码

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

答案 6 :(得分: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];

            }