我创建了UITableview,并在UITableview上添加了一个活动指示器作为子视图。我想要的是该活动指示器在表加载之前动画片刻。表加载后,激活指示应该消失。 我正在使用这些方法:
[spinner startAnimating];
[spinner stopAnimating];
问题是在iPhone上加载表之前,活动指示器没有动画。但是如果我删除这个方法:
[spinner stopAnimating];
然后在加载表后,活动指示器仍然是动画的。
告诉我,在Iphone上加载表之前,我对动画活动做了什么
答案 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];
}