我在尝试使用组更改UITableView的背景时遇到了一些麻烦。
_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]];
这通常适用于所有其他UITableView,但不适用于有群组的人,我还有什么需要做的吗? 在IB中,我将背景颜色设置为清晰的颜色,但这并没有太大作用。
答案 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