在通用应用程序中设置 UITableView 背景颜色(iOS 5)

Posted

技术标签:

【中文标题】在通用应用程序中设置 UITableView 背景颜色(iOS 5)【英文标题】:Setting UITableView backgroundColor in universal app (iOS 5) 【发布时间】:2011-11-02 17:26:00 【问题描述】:

我必须在我的通用应用程序中将 UITableView 的 backgroundColor 属性设置为某种颜色。如果我写这个...

self.tableView.backgroundColor = [UIColor colorWithRed:146.0f green:197.0f blue:240.0f alpha:1.0f];

...它不适用于 iPhone 或 iPad(背景为白色)。

如果我使用标准颜色,而不是...

self.tableView.backgroundColor = [UIColor greenColor];

...它适用于 iPhone,但不适用于 iPad。

我尝试了 SO 上建议的其他解决方案(backgroundView 到 nil/clearColor 等),但这些都不适用于 ios SDK 5。你能帮帮我吗?

【问题讨论】:

您的 RGB 值应介于 0.0f 和 1.0f 之间。见this similar question。 我遇到了同样的问题。对于 iOS 5.0 的 iPad,tableview 的背景颜色似乎无法更改。如果您能够解决问题,请发布答案。 【参考方案1】:

您需要将每个颜色值除以 255。 您的颜色将是:

[UIColor colorWithRed:146/255.0 green:197/255.0 blue:240/255.0 alpha:1.0];

【讨论】:

【参考方案2】:

您可以为 tableView 设置一个 backgroundView(具有您喜欢的背景颜色),而不是更改背景颜色。

UIView *bgView = [[UIView alloc] initWithFrame:self.tableView.bounds];
bgView.backgroundColor = [UIColor redColor];
self.tableView.backgroundView = bgView;

【讨论】:

【参考方案3】:

你在使用导航控制器吗?

试试这个:

 self.tableView.backgroundColor = [UIColor clearColor];
[self.tableView setSeparatorColor:[UIColor clearColor]];
self.navigationController.view.backgroundColor = [UIColor greenColor];

这就是我在 iOS5 和通用应用程序中使用的。

【讨论】:

好的。我有一个减号。而且我知道我的答案只是答案的一半,因为您确实应该将数字除以 255。但是 iPad 的问题还在于将 tableview 背景设置为 clearColor,因为与 iPhone 相比,它在 iPad 上的工作方式不同。这就是为什么 [UIColor greenColor] 在 iPhone 上而不是在 iPad 上工作的解释。

以上是关于在通用应用程序中设置 UITableView 背景颜色(iOS 5)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中设置 UITableView 部分标题渐变(和透明)背景?

如何在 UITableView 样式分组中设置单元格的角半径?

iPhone 开发,UITableView 背景颜色

如何在 UITableCellView 中设置 imageView 属性以仅显示背景颜色?

如何在 UITableView 中设置单元格高度?

以编程方式在 View Controller 中设置 UITableView