我有一个问题,这不是什么大问题,但让我发疯。 我有一个子类UITableView的视图。
按下其中一个单元格前导到一个冗长的HTTP请求,我在另一个线程上使用didSelectRowAtIndexPath中的代码运行:
case SECTION_SEND:
[self addActivityIndicatorToView];
[self performSelectorInBackground:@selector(sendEmail) withObject:nil];
break;
activityIndicator表现正常。在操作结束时在屏幕上显示然后自行移除。但是,如果应用程序转到后台或其他选项卡,则活动指示符将消失,即使任务未完成。
以下是我使用的方法:
然后:
-(UIActivityIndicatorView*)createActivityIndicator {
//Setting up activity indicator
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.color = [UIColor whiteColor];
spinner.backgroundColor = [UIColor blackColor];
spinner.alpha = 0.8;
CGFloat width = 120;
spinner.frame = CGRectMake(self.tableView.bounds.size.width/2-width/2, self.tableView.bounds.size.height/2-width/2, width, width);
//spinner.center = CGPointMake( [UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2);
spinner.layer.cornerRadius = 20;
spinner.layer.masksToBounds = YES;
return spinner;
}
-(void)addActivityIndicatorToView {
//[[[[UIApplication sharedApplication] delegate] window] addSubview:ai];
_ai = [self createActivityIndicator];
[self.tableView.superview addSubview:_ai];
[_ai startAnimating];
}
-(void) removeActivityIndicatorFromView {
[_ai stopAnimating];
[_ai removeFromSuperview];
}
当操作结束时,我正在调用[self removeActivityIndicatorFromView]。 正如我所说,除非我离开屏幕,否则它的行为正常。我检查了我的viewdidload和viewwilldisappear viewwillappear和init方法,我没有覆盖_ai。
有什么想法吗?