当表视图加载时,我无法设置单元格的背景颜色,无论它保持与XIB中声明的颜色相同。这个表视图仍然像XIB一样白:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
cell.textLabel.textColor = [UIColor lightGrayColor];
UIColor *cellBackColor = [UIColor orangeColor];
cell.backgroundColor = cellBackColor;
return cell;
}
我可以做些什么来确保我的方法中的颜色是表格视图中的颜色。
注意:显然,如果我可以在XIB中更改它,但最终我希望颜色交替。
答案 0 :(得分:2)
UITableViewCell
有一个内容视图。您可以通过contentView
属性访问它。这就是为什么你没有看到细胞颜色发生变化的原因。内容视图覆盖单元格的整个框架,它包含您添加到单元格的所有视图。您可以更改其backgroundColor
以查看效果。
作为更好的解决方案,您可以为单元格的backgroundView
属性分配新视图。
cell.backgroundView = [[UIView alloc]initWithFrame:cell.frame];
cell.backgroundView.backgroundColor = [UIColor blueColor];
您也可以使用backgroundView
将背景设置为自定义图像。
答案 1 :(得分:0)
尝试在willDisplayCell中添加用于更改背景颜色的代码:forRowAtIndexPath:表视图的委托方法:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
UIColor *cellBackColor = [UIColor orangeColor];
cell.backgroundColor = cellBackColor;
}
答案 2 :(得分:0)
在cellForRowAtIndexPath方法中使用:
cell.contentView.backgroundColor = [UIColor redColor];