我在UITableCell中有一个UILabel,当我将标签的背景透明时,我会得到这些奇怪的幽灵角色(见下图),看起来很糟糕。这是我的代码:
左:
UILabel *unreadLabel = [[UILabel alloc] initWithFrame:CGRectMake(270, 7, 25, 25)];
unreadLabel.text = [NSString stringWithFormat:@"%d", source.unreadCount];
unreadLabel.textColor = [UIColor colorWithWhite:100.0f/255.0f alpha:1.0];
unreadLabel.font = [UIFont systemFontOfSize:11.0f];
[cell addSubview:unreadLabel];
[unreadLabel release];
右边与左边相同,但添加了:
unreadLabel.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.0];
UnreadCount是一个NSInteger。
答案 0 :(得分:1)
当您一遍又一遍地绘制文本时会发生这种情况。我的第一个想法是,看起来你有一个细胞重用错误,当你重复使用细胞时,你不会清除所有东西。如果您要取出单元重用,并且每次只分配一个新单元格,我打赌这不会显示。如果是这种情况,那么在重新配置之前一定要看清楚如何清理单元格,并确保正确处理所述标签而不是忽略。
答案 1 :(得分:1)
每次使用单元格时,都会向单元格添加UILabel。但是,细胞会被重复使用,因此每次重复使用细胞时,您只需添加一个新标签即可。您需要对此进行调整,以便在创建单元格时仅添加标签,而只是在后续重复使用单元格时检索已存在的标签(可能通过为其添加标签并使用-viewWithTag:
)。 p>