在通用应用程序中设置 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)的主要内容,如果未能解决你的问题,请参考以下文章