我正在尝试普遍更改表格视图的背景颜色。它是UINavigationController和TabBarController应用程序的组合。我已经尝试在AppDelegate applicationDidFinishLaunchingWithOptions中添加以下内容
[[[UITableView appearance] backgroundView] setBackgroundColor:[UIColor redColor]];
[[UITableView appearance] setBackgroundColor:[UIColor redColor]];
[[UITableView appearanceWhenContainedIn:[UINavigationController class], nil] setBackgroundColor:[UIColor greenColor]];
[[UITableView appearanceWhenContainedIn:[UITabBarController class], nil] setBackgroundColor:[UIColor greenColor]];
没有变化。
如果我尝试在AppDelegate中更改常规UIView,则可以:
[[UIView appearance] setBackgroundColor:[UIColor redColor]];
如果我在viewDidLoad中单独攻击每个tableview,则可以:
self.tableView.backgroundColor = [UIColor redColor];
我意识到这只是一行代码,但是有很多视图,跟踪是另一回事。 iOS 5 UIAppearance似乎是为此而制作的。我不清楚它为什么不起作用。感谢。
答案 0 :(得分:3)
UIAppearance
在技术上不支持setBackgroundColor:
,这就是您没有看到所有表格视图颜色发生变化的原因。您最好的选择是继承UITableView
。
如果您需要有关如何操作的信息,请参阅this answer.
对于将来的观看者,here是一个答案的链接,其中包含UIAppearance
支持的所有方法的列表。
答案 1 :(得分:0)
[[UITableView外观] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@“xxxx.png”]]];
返回YES; }
答案 2 :(得分:0)
[UITableView backgroundColor]选择器未标记UI_APPEARANCE_SELECTOR。根据Apple文档
"要支持外观自定义,类必须符合UIAppearanceContainer协议,并且必须使用UI_APPEARANCE_SELECTOR标记相关的访问者方法。"
UITableView backgroundColor不适用于外观代理