iOS 8.1 UITableview背景颜色始终为白色

时间:2014-11-06 16:38:52

标签: ios uitableview ios8

所以我在iOS 7.1中测试了它,它运行正常。我正在使用下面的行设置背景颜色以清除我的tableview。

    self.tableview = [[UITableView alloc]initWithFrame:self.bounds style:UITableViewStylePlain];
    self.tableview.delegate = self;
    self.tableview.dataSource = self;
    self.tableview.backgroundView = nil;
    self.tableview.backgroundColor = [UIColor clearColor];
    self.tableview.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];
    [self addSubview:self.tableview];

我还将tableFooterView设置为一个新视图,以隐藏任何剩余未使用的单元格。

self.tableview.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];

这在iOS 7上运行得非常好,但在iOS 8中,我在桌面视图下留下了白色背景颜色。 tableview坐在里面的superview也有一个清晰的背景颜色。有什么想法吗?

下面添加了图片 - 我不得不模糊客户名称

在iOS 7上工作 Working on iOS 7

不适用于iOS 8.1 enter image description here

2 个答案:

答案 0 :(得分:3)

Apple文件说

...在iOS 7中,单元格默认为白色背景;在早期版本的iOS中,单元格继承封闭表视图的背景颜色。如果要更改单元格的背景颜色,请在tableView:willDisplayCell:forRowAtIndexPath:表视图委托方法中执行此操作。

您可能需要使用willDisplayCell UITableView委托方法为表格视图提供透明背景。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cellforRowAtIndexPath:(NSIndexPath *)indexPath

{
      [cell setBackgroundColor:[UIColor clearColor]];
}

答案 1 :(得分:0)

对我来说,这是有效的(我在自己的XIB中使用自定义UITableViewCell):

  • 将单元格的内容视图背景设置为IB中的颜色。
  • 将单元格的背景设置为IB中的颜色。
  • 在viewDidLoad 中以编程方式将表格视图的背景颜色设置为UIColor.clearColor() 。在故事板中进行操作并不起作用。