在通用应用程序中设置 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 样式分组中设置单元格的角半径?