我在尝试使用组更改 UITableView 的背景时遇到了一些麻烦。
_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]];
这通常适用于所有其他 UITableView,但不适用于带有组的 UITableView,我还有其他事情要做吗?在 IB 中,我将背景颜色设置为清晰的颜色,但这并没有多大作用。
我在尝试使用组更改 UITableView 的背景时遇到了一些麻烦。
_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]];
这通常适用于所有其他 UITableView,但不适用于带有组的 UITableView,我还有其他事情要做吗?在 IB 中,我将背景颜色设置为清晰的颜色,但这并没有多大作用。
您还需要禁用的背景视图_tableView
:
[_tableView setBackgroundView:nil];
_tableView.backgroundColor = [UIColor redColor];
无需向 backgroundView 添加新视图。这对我有用iOS6
。
为什么不设置tableView.backgroundView?您可以使用指定的图像分配图像视图并将其传递给背景视图,而不是设置背景颜色。
我通常对分组 UITableViews 所做的是将背景颜色设置为清除,并将该模式图像设置为父视图。
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableBG.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
tableView.backgroundView = nil;
tableView.backgroundColor = [UIColor colorWithPatternImage: xxx];
// tableView.backgroundColor = [UIColor redColor]; // is ok
如果您将 backgroundColor 设置为这样,当您滚动 tableView 时,backgroundColor 视图也会滚动。所以,你可以: tableView.backgroundView = nil; self.view.backgroundColor = ...
所选答案有效,但它清除了 tableHeaderView 和表格部分标题视图的背景。如果您只希望表格标题具有某种颜色,请说白色和部分标题仍然是默认灰色,而不是执行以下操作 -
tableView.tableHeaderView.inputView.backgroundColor = [UIColor whiteColor];
只是想添加到 Nirav 的答案 - 它也可以使用 iOS 5 外观代理来完成。
[[UITableView appearance] setBackgroundView:nil];
[[UITableView appearance] setBackgroundColor:[UIColor lightGreyColor]];
优点是它适用于全局,因此您可以将所有 UI 自定义组合到一个地方。但是,它将适用于所有 tableViews(不仅仅是分组样式)。
对于iOS 9+,更改背景颜色UITableView
就足够了。
Objective-C
tableView.backgroundColor = [UIColor redColor];
迅速
tableView.backgroundColor = .red
斯威夫特 4.2
删除背景视图和颜色
tableView.backgroundView = nil
tableView.backgroundColor = .clear