有人可以解释为什么要使用viewWithTag从dequeueReusableCellWithIdentifier中的单元格中获取子视图(例如UILabel等)?
一些背景信息:我有一个自定义UITableViewCell与它的几个UILabels(我已经转载了下面的简单版本).这些标签在相关的NIB文件中定义,并使用IBOutlet声明并链接回自定义单元的控制器类.在tableview的dequeueReusableCellWithIdentifier中,我这样做:
CustomCell *customCell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomCellId"]; if (customCell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil]; for (id oneObject in nib) if ([oneObject isKindOfClass:[CustomCell class]]) customCell = (CustomCell *)oneObject; } customCell.firstLabel.text = @"Hello"; customCell.secondLabel.text = @"World!"; return customCell;
一切都很好但是从我看到的教程中,看起来像改变标签值时,我应该这样做:
UILabel *firstLabel = (UILabel *)[customCell.contentView viewWithTag:555]; firstLabel.text = @"Hello"; UILabel *secondLabel = (UILabel *)[customCell.contentView viewWithTag:556]; secondLabel.text = @"World!";
有人可以告诉我哪种方法是首选,为什么?
谢谢!