2010-10-28 56 views
0

我在UITableCell中有一個UILabel,當我使標籤的背景透明時,我得到了這些奇怪的鬼字符(見下圖),看起來很糟糕。這裏是我的代碼:用透明背景打印NSInteger時出現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的。

alt text

回答

1

您每次使用單元格時都會向單元添加UILabel。但是,單元格被重用,所以每次單元格被重用時,您只需添加一個新標籤即可。您需要調整此設置,以便在創建單元格時只添加標籤,而不是在隨後重複使用單元格時檢索已存在的標籤(可能通過爲其提供標籤並使用-viewWithTag:)。

1

這發生在你一遍又一遍地繪製文本。我的第一個想法是,它看起來像你有一個單元複用的bug,因此當你重用單元時你沒有清除所有的東西。如果您要取出細胞重複使用,並且每次只分配一個新細胞,我敢打賭這並不顯示。如果是這種情況,那麼在重新配置它之前,一定要看清楚你如何清除單元格,並確保正確處理標籤並且不會被忽略。