UITableViewCell第一次显示不正确

时间:2011-06-16 15:47:39

标签: iphone ios uitableview

我在创建或重用单元格后,使用以下代码在不同的单元格背景(白色和浅灰色)和字体属性(粗体和正常)之间切换:

- (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>(正确)但其字体正常(错误)。

如果我向下滚动并重新显示单元格,则会按预期显示。

谢谢, 乔治

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

[[userModel suspended] boolValue]返回的布尔值是否有可能在创建第一组单元格时为false?