iOS 8.1 iTableView背景色始终为白色

iOS 8.1 iTableView背景色始终为白色,ios,uitableview,ios8,Ios,Uitableview,Ios8,我已经在iOS 7.1中测试过了,效果很好。我正在使用下面的线条将背景色设置为桌面视图上的清晰 self.tableview = [[UITableView alloc]initWithFrame:self.bounds style:UITableViewStylePlain]; self.tableview.delegate = self; self.tableview.dataSource = self; self.tableview.backgroundVi

我已经在iOS 7.1中测试过了,效果很好。我正在使用下面的线条将背景色设置为桌面视图上的清晰

    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上工作

苹果文件中说,iOS 8.1不工作

。。。在iOS 7中,默认情况下,单元格背景为白色;在iOS的早期版本中,单元格继承封闭表视图的背景色。如果要更改单元格的背景色,请在表视图委托的tableView:willDisplayCell:forrowatinexpath:方法中进行更改

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

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

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

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

  • 在IB中将单元格的内容视图背景设置为“清除颜色”
  • 在IB中将单元格背景设置为清晰颜色
  • 在viewDidLoad中以编程方式将表格视图的背景色设置为
    UIColor.clearColor()
    。在情节提要中这样做是行不通的

您希望它有什么颜色?但这意味着什么?无论你把iPhone设置得多么透明,你都看不到它的内部工作原理。白色在哪里。。。应该是什么?我有一个从侧面滑动的tableview,当没有足够的内容让单元格数到达屏幕底部时,你应该能够看到原始视图的背景视图。啊,你是如何从侧面滑动的?这是到包含表视图的新视图控制器的模式转换吗?感谢@Fogmeister的帮助,新视图调试很酷。通过简化我的观点,我成功地解决了这个问题。我没有将tableview添加为子视图,而是使用uitableview作为基础,它似乎可以工作。不知道为什么,但它在iOS 7和iOS 8上运行,上帝之母!iOS 8会让我发疯的。必须使用此解决方案,即使使用通过序列图像板定义的表格单元格颜色。我把“黑色”放在所有地方(表格、单元格、内容视图、背景、前景、色调…),但我仍然得到了白色背景(主要是披露指标)。我将这些行添加到我的UITableViewController中,它成功了。认真地乔布斯死后,苹果正在走向死亡。