我在创建或重用单元格后,使用以下代码在不同的单元格背景(白色和浅灰色)和字体属性(粗体和正常)之间切换:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
UIView* cellBackgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
UIFont *font;
if ([[userModel suspended] boolValue]) {
[cellBackgroundView setBackgroundColor:[UIColor lightGrayColor]];
font = [UIFont italicSystemFontOfSize:[[[cell textLabel] font] pointSize]];
} else {
[cellBackgroundView setBackgroundColor:[UIColor whiteColor]];
font = [UIFont boldSystemFontOfSize:[[[cell textLabel] font] pointSize]];
}
[cell setBackgroundView:cellBackgroundView];
[[cell textLabel] setFont:font];
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
[[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
[[cell textLabel] setText:[NSString stringWithFormat:@"%@, %@",
[userModel familyName], [userModel givenName]]];
[[cell detailTextLabel] setText:[userModel userName]];
return cell;
}
问题是,如果需要 lightgray 且斜体的单元格在加载后显示的第一组单元格上,则其背景显示为 lightgray < / strong>(正确)但其字体正常(错误)。
如果我向下滚动并重新显示单元格,则会按预期显示。
谢谢, 乔治
答案 0 :(得分:1)
答案 1 :(得分:0)
[[userModel suspended] boolValue]返回的布尔值是否有可能在创建第一组单元格时为false?