Ios 更改分组UITableView的背景

Ios 更改分组UITableView的背景,ios,uitableview,Ios,Uitableview,我在尝试使用组更改UITableView的背景时遇到一些问题 _tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]]; 这通常适用于其他所有UITableView,但不适用于具有组的UITableView,我还需要做其他事情吗? 在IB中,我将背景颜色设置为清晰的颜色,但这没有多大作用。我通常对分组UITableView执行的操作是将背景颜色设置为清

我在尝试使用组更改UITableView的背景时遇到一些问题

_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]];
这通常适用于其他所有UITableView,但不适用于具有组的UITableView,我还需要做其他事情吗?
在IB中,我将背景颜色设置为清晰的颜色,但这没有多大作用。

我通常对分组UITableView执行的操作是将背景颜色设置为清晰,并将图案图像设置为父视图

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

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

您还需要禁用
\u tableView的背景视图:

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

无需向backgroundView添加新视图。这在iOS6中对我有效,我只想补充Nirav的答案-也可以使用iOS5外观代理

[[UITableView appearance] setBackgroundView:nil];
[[UITableView appearance] setBackgroundColor:[UIColor lightGreyColor]];
优点是它是全局应用的,因此您可以将所有UI自定义分组到一个位置。但是,它将应用于所有表视图(而不仅仅是分组样式)


如果将backgroundColor设置为此,则在滚动tableView时,backgroundColor视图也将滚动。因此,您可以:tableView.backgroundView=nil;self.view.backgroundColor=…

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

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

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

目标-C

tableView.backgroundColor = [UIColor redColor];
Swift

tableView.backgroundColor = .red

Swift 4.2

删除背景视图和颜色


我也尝试过,但没有成功:self.view.backgroundColor=[UIColor WithPatternImage:[UIImage ImageName:@“tableViewBg.png”]_tableView.backgroundColor=[UIColor clearColor];如果我没记错,UITableView有一个滚动视图背景。。试试这个。。添加到我的答案中。嗯,这也没什么作用,我不明白为什么它在这里不起作用,在任何其他表格中,我使用相同的代码可以正常工作+1这对我来说很好,特别是如果我将backgroundview设置为零。tableView.backgroundColor不是用来更改背景色的吗?使用tableView.backgroundView似乎是一个很长的解决方法。事实上,你的回答帮助了我,结果证明了为什么你将UITableView分组,backgroundView是通过使用self.tableView.backgroundView=nil设置的;你把它拿走了,真是太好了,节省了时间。天才。谁知道分组的部分标题是清楚的!2017年,无论我们现在使用什么iOS,您都不需要消除tableView的背景。我直接把它设为白色,这就是她写的。谢谢你帮我解决这个问题@MikeCritchley这个答案是在2013年给出的,因为当时没有实施。
tableView.backgroundColor = .red
tableView.backgroundView = nil
tableView.backgroundColor = .clear