所以当我选择时,我将活动指示器设置为我的表格视图单元格上的附件视图。
UITableViewCell *cell = [tableVw cellForRowAtIndexPath:indexPath];
UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[act startAnimating];
[cell setAccessoryView:act];
[act release];
稍后,当我需要继续运行数据时,我希望在转换到另一个视图之前删除此活动指示符,以便单元格返回到其默认状态。以下内容无效。
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:self.tableView.indexPathForSelectedRow];
[cell.accessoryView removeFromSuperview];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
答案 0 :(得分:0)
您应该采用某种方式确定某个对象是否需要tableView:cellForRowAtIndexPath:
中的活动指示符。例如,维护一个字典或数组,用于存储索引路径中的单元格是否仍在执行某些操作,或者使用表示是否正在加载的属性创建模型对象等。
在tableView:cellForRowAtIndexPath:
中,检查该索引路径中的单元格是否需要活动指示器视图,如果不是,请将单元格的accessoryView
设置为nil
。< / p>
然后稍后删除附件视图:
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:theIndexPath] withRowAnimation:UITableViewRowAnimationNone];