UITableViewCell addSubview重复对象

时间:2012-07-28 16:15:52

标签: iphone objective-c uitableview

非常简单的问题。在cellForRowAtIndexPath我需要添加自定义UILabel。所以我在给定的方法中尝试这个:

UILabel *titleLbl = [[UILabel alloc] init];
//Other properties etc

if (indexPath.row == 0) titleLbl.text = @"1";
else if (indexPath.row == 1) titleLbl.text = @"2";

[cell addSubview:titleLbl];

问题是当向下滚动我的表时,标签开始重复和重复。

我怎样才能解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:3)

将该标签添加为

中的子视图
if (!cell) {
  cell =...;
  UILabel *label;
  label.tag = 1;
  [cell addSubview:label];
}

UILabel *label = (UILabel*)[cell viewWithTag:1];
if (indexPath.row == 0) label.text = @"1";

这种方式只会在分配单元格时添加。要检索该标签,请为其添加标签并使用单元格的viewWithTag方法

答案 1 :(得分:0)

这是因为每次添加标签时都会重复使用您的单元格。

最好是在UITableViewCell的子类中添加UILabel。不要忘记覆盖prepareForReuse方法,您可以将标签的文本设置为nil