2014-11-05 106 views
4

我有一个项目,我需要改变整体色彩主题的应用程序。我的很多UI元素都是通过Xcode 6.1中的Interface Builder构建的。我需要在界面生成器中将颜色设置为变量,所以如果我设置预处理器告诉应用程序使用某个方案,那么界面构建器中的颜色将会更改。这甚至有可能吗?变量的颜色在Interface Builder

回答

1

我不知道的任何方式与界面生成器要做到这一点,但有是你可以在代码中设置外观属性为众多IOS UI元素,然后将全局应用的一种方式。作为一个例子见下面的代码片断:

UIToolbar.appearance().tintColor = UIColor.whiteColor() 
UIToolbar.appearance().barTintColor = UIColor.blackColor() 

UITableView.appearance().separatorColor = UIColor.grayColor() 
UITableView.appearance().sectionIndexColor = UIColor.grayColor(); 

UINavigationBar.appearance().tintColor = UIColor.blueColor() 
UINavigationBar.appearance().barTintColor = UIColor.blackColor() 
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()] 

代码设置一个默认的色调和栏的颜色的所有UIToolbars,分离器和节索引颜色所有UITableViews,和外观性能在所有UINavigation视图我的应用程序..

你可以使用#if来设置不同的外观取决于编译器设置环境变量。

如果您想了解更多有关如何工作的编号建议阅读苹果文档放在这里UIAppearance属性: UIAppearance Documentation

+0

这是没有帮助的。如果有人问这样一个具体的问题,他们很可能知道外表......如果你有两种标签(标题和文本)并且想要改变所有标题的颜色,该怎么办?那么你不能只改变标签的外观! – eyeballz 2015-02-23 17:29:43

1

颜色变量是真棒,我想Xcode中有这一点。

原来你可以添加颜色变量功能。

这Xcode的插件,叫做Suggested Colors,让您建立和Interface Builder中使用的颜色的调色板。它使用了一个plist文件,所以我认为你可以在代码中读取它,并在代码和IB之间共享一个调色板。看起来很有希望。不幸的是,似乎在xcode 6.3.2上不起作用。希望它得到修复。