稍后删除UITableViewCell的accessoryView?

时间:2010-08-13 21:14:01

标签: iphone cocoa-touch uitableview

所以当我选择时,我将活动指示器设置为我的表格视图单元格上的附件视图。

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];

1 个答案:

答案 0 :(得分:0)

您应该采用某种方式确定某个对象是否需要tableView:cellForRowAtIndexPath:中的活动指示符。例如,维护一个字典或数组,用于存储索引路径中的单元格是否仍在执行某些操作,或者使用表示是否正在加载的属性创建模型对象等。

tableView:cellForRowAtIndexPath:中,检查该索引路径中的单元格是否需要活动指示器视图,如果不是,请将单元格的accessoryView设置为nil。< / p>

然后稍后删除附件视图: [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:theIndexPath] withRowAnimation:UITableViewRowAnimationNone];