界面生成器中用于颜色的变量

7

我有一个项目需要在应用程序中更改整体颜色主题。我的许多用户界面元素是通过Xcode 6.1中的Interface Builder构建的。我需要在Interface Builder中将颜色设置为变量,这样如果我设置一个预处理器,告诉应用程序使用特定的方案,那么颜色将会在Interface Builder中更改。这是否可能?

2个回答

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的默认色调和导航栏颜色,所有UITableView的分隔器和section index颜色,并为应用程序中所有UINavigation视图设置外观属性。
您可以使用#if根据编译器中设置的环境变量不同设置外观。
如果您想了解更多信息,请阅读苹果关于UIAppearance属性的文档: UIAppearance文档

这完全没有帮助。如果有人像这样提出具体问题,他们很可能已经了解外观方面的知识... 如果您有两种标签(标题和文本),并且想要更改所有标题的颜色,那么您不能仅仅更改标签的外观! - eyeballz

1

颜色变量非常棒,我希望Xcode也有这个功能。

事实证明,您可以添加颜色变量功能。

这个名为Suggested Colors的Xcode插件,让您在界面构建器中构建和使用一组颜色。它使用一个plist文件,因此我认为您可以在代码中读取该文件,并以这种方式共享代码和IB之间的颜色调色板。看起来很有前途。不幸的是,在Xcode 6.3.2上似乎不起作用。希望能够得到修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接