非常简单的问题。在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];
问题是当向下滚动我的表时,标签开始重复和重复。
我怎样才能解决这个问题?
感谢。
答案 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