我有一个 UITableView 填充了显示文件名的单元格,这些单元格还指示文件的上传/下载进度。移动文件时,其对应的单元格应UIActivityIndicatorView
在其附件视图中显示 a。我有一个UIActivityIndicatorView
设置并准备进入viewDidLoad
,但是当我尝试将其设置为多个单元格的附件视图时,它只显示在一个单元格中。
-(void)viewDidLoad {
[super viewDidLoad];
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[activityIndicator startAnimating];
}
//...code that detects file changes and calls fileChange
-(void)fileChange {
for (int i = 0; i < [self.cloudNames count]; i++) {
//detect whether file name in array is uploading, downloading, or doing nothing
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
if (downloading) {
cell.accessoryView = activityIndicator;
//other changes here specific to downloads
} else if (uploading) {
cell.accessoryView = activityIndicator;
//other changes here specific to uploads
} else {
cell.accessoryView = nil;
}
}
}
正如我所说,活动指示器只显示在一个单元格中,即使有多个单元格应该显示它。
我不想UIActivityIndicatorView
在fileChange
方法中设置(即使它有效),因为在上传/下载过程中会多次调用此方法。如果调用该方法并在那里设置了活动指示器,则在调用该方法时,所有表格视图单元格中的活动指示器都会重置,从而导致动画出现故障和不流畅,并导致巨大的内存问题。
有什么想法吗?谢谢。