-2

我希望整个单元格以蓝色打印,但它只显示一个小带。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
[cell.contentView setBackgroundColor:[UIColor blueColor]];    
cell.textLabel.text = [NSString stringWithFormat:@"%@", [cat objectAtIndex:indexPath.row]];    
return cell;}

我的屏幕截图是这样的:

在此处输入图像描述

4

4 回答 4

2

在[cell.contentView setBackgroundColor:[UIColor blueColor]]之后添加这一行;线:

cell.textLabel.backgroundColor = [UIColor clearColor];
于 2013-05-08T11:57:35.177 回答
1

回答 : tableView:willDisplayCell:forRowAtIndexPath:

    - (void)tableView:(UITableView *)tableView
  willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        cell.backgroundColor = [UIColor blueColor];
    }
于 2013-05-08T11:58:52.277 回答
1

由于UITableView在选择期间更改单元格背景颜色的方式,您必须tableView:willDisplayCell:forRowAtIndexPath:在那里实现和设置单元格背景。您应该设置整个单元格的背景,而不仅仅是它的 contentView,否则附件视图将不会突出显示。

- (void)tableView:(UITableView *)tableView
  willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // ...
    cell.backgroundColor = ...;
}

您可能还需要使单元格中的各种子视图具有透明的背景颜色。

cell.titleLabel.backgroundColor = [UIColor clearColor];
cell.titleLabel.opaque = NO;
于 2013-05-08T12:01:36.443 回答
1

用这个

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
[cell.contentView setBackgroundColor:[UIColor blueColor]];    
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.text = [NSString stringWithFormat:@"%@", [cat objectAtIndex:indexPath.row]];    
return cell;}
于 2013-05-08T12:01:49.490 回答