20

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

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

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

4

8 回答 8

52

您还需要禁用的背景视图_tableView

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

无需向 backgroundView 添加新视图。这对我有用iOS6

于 2013-01-17T09:28:18.420 回答
5

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

于 2012-06-15T08:33:33.280 回答
3

我通常对分组 UITableViews 所做的是将背景颜色设置为清除,并将该模式​​图像设置为父视图。

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableBG.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
于 2012-06-15T08:27:16.010 回答
1
tableView.backgroundView = nil;
tableView.backgroundColor = [UIColor colorWithPatternImage: xxx];
// tableView.backgroundColor = [UIColor redColor];  // is ok

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

于 2013-08-22T02:39:21.863 回答
1

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

tableView.tableHeaderView.inputView.backgroundColor = [UIColor whiteColor];
于 2017-08-21T22:50:21.223 回答
0

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

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

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

于 2013-08-21T10:59:58.910 回答
0

对于iOS 9+,更改背景颜色UITableView就足够了。

Objective-C

tableView.backgroundColor = [UIColor redColor];

迅速

tableView.backgroundColor = .red
于 2019-03-06T20:51:29.967 回答
0

斯威夫特 4.2

删除背景视图和颜色

tableView.backgroundView = nil
tableView.backgroundColor = .clear
于 2019-03-14T12:17:15.320 回答