更改分组的UITableView的背景

时间:2012-06-15 08:20:47

标签: ios uitableview

我在尝试使用组更改UITableView的背景时遇到了一些麻烦。

_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]];

这通常适用于所有其他UITableView,但不适用于有群组的人,我还有什么需要做的吗? 在IB中,我将背景颜色设置为清晰的颜色,但这并没有太大作用。

8 个答案:

答案 0 :(得分:50)

您还需要停用_tableView的背景视图:

[_tableView setBackgroundView:nil];
 _tableView.backgroundColor = [UIColor redColor];

无需向backgroundView添加新视图。这在iOS6中适用于我。

答案 1 :(得分:5)

为什么不设置tableView.backgroundView?您可以使用指定的图像分配图像视图,并将其传递给背景视图,而不是设置背景颜色。

答案 2 :(得分:3)

我通常使用分组的UITableViews设置要清除的背景颜色,以及将图像设置为父视图的设置。

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableBG.png"]];
self.tableView.backgroundColor = [UIColor clearColor];

答案 3 :(得分:1)

tableView.backgroundView = nil;
tableView.backgroundColor = [UIColor colorWithPatternImage: xxx];
// tableView.backgroundColor = [UIColor redColor];  // is ok

如果你设置了backgroundColor,当你滚动tableView时,backgroundColor视图也会滚动。所以,你可以:tableView.backgroundView = nil; self.view.backgroundColor = ...

答案 4 :(得分:1)

所选答案有效但会清除tableHeaderView和表格节标题视图的背景。如果您只是希望表头具有某种颜色,请说白色和部分标题仍然是默认灰色,而不是执行以下操作 -

tableView.tableHeaderView.inputView.backgroundColor = [UIColor whiteColor];

答案 5 :(得分:0)

只想添加Nirav的答案 - 它也可以使用iOS 5外观代理完成。

[[UITableView appearance] setBackgroundView:nil];
[[UITableView appearance] setBackgroundColor:[UIColor lightGreyColor]];

优点是它适用于全局,因此您可以将所有UI自定义组合在一个位置。但是,它将适用于所有tableView(不仅仅是分组样式)。

答案 6 :(得分:0)

对于 iOS 9 + ,只需更改UITableView的背景颜色即可。

Objective-C

tableView.backgroundColor = [UIColor redColor];

快速

tableView.backgroundColor = .red

答案 7 :(得分:0)

Swift 4.2

  
    

删除背景视图和颜色

  
tableView.backgroundView = nil
tableView.backgroundColor = .clear