开发者

UILabel ghosting when printing NSInteger with transparent background

开发者 https://www.devze.com 2023-01-22 17:10 出处:网络
I have a UILabel in a UITableCell, and when I make the label\'s background transparent, I get these strange ghost characters (see image below), and it looks terrible. Here\'s my code:

I have a UILabel in a UITableCell, and when I make the label's background transparent, I get these strange ghost characters (see image below), and it looks terrible. Here's my code:

Left:

UILabel *unreadLabel = [[UILabel alloc] initWithFrame:CGRectMake(270, 7, 开发者_如何学Python25, 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];

Right is the same as the left but with this added:

unreadLabel.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.0];

UnreadCount is a NSInteger.

UILabel ghosting when printing NSInteger with transparent background


You're adding a UILabel to the cell every time you use the cell. However, cells are reused, so every time a cell is reused, you're just adding a new label to it. You need to adjust this so you only add a label when you create the cell, and instead just retrieve the already-existing label (perhaps by giving it a tag and using -viewWithTag:) on subsequent reuses of the cell.


This happens when you draw text over and over again. My first thought is, it looks like you have a cell reuse bug, whereby you're not clearing everything when you reuse cells. If you were to take out cell reuse, and just allocate a new cell every time, I bet this doesn't show. If this is the case, then definitely look at how you're clearing a cell before you reconfigure it, and ensure said label is being handled properly and not ignored.

0

精彩评论

暂无评论...
验证码 换一张
取 消