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
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 回答
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 回答