更新UITableView的imageView / detailTextLabel

时间:2013-05-14 15:49:54

标签: ios uitableview uiimageview

我正在使用UITableView显示多行数据:textLabel.text用于名称,imageView用于显示状态(在线/离线),detailTextLabel用于显示其他信息。

离。在cellForRowAtIndexPath

cell.imageView.image = [UIImage imageNamed:@"checking.png"];
cell.textLabel.text = @"NAME";
cell.detailTextLabel.text = @"Checking...";

如何从其他函数更新imageView.image和detailTextLabel.text。有UITableView方法吗? 我猜我需要使用IndexPath行来定位单元格。也许为每个imageView和detailTextLabel分配标签?

感谢。

2 个答案:

答案 0 :(得分:0)

您更好的选择是更新模型中的数据,然后将表视图询问reloadData(或者,如果您具体知道哪些行已更新,reloadRowsAtIndexPaths:withRowAnimation:)。

这样可以保持数据模型的完整性,是管理视图的最简单的代码。

答案 1 :(得分:0)

你应该尝试使用这样的属性:

@property (nonatomic, strong) UIImage *image;
@property (nonatomic, strong) NSString *textLabel;
@property (nonatomic, strong) NSString *detailTextLabel;

然后将此属性添加到您的单元格中:

cell.imageView.image = image;
cell.textLabel.text = textLabel;
cell.detailTextLabel.text = detailTextLabel;

每当更新数据时,都会调用重新加载单元格的方法(包含要重新加载的单元格的indexPath的数组):

[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone];