1个故事板的两种不同配色方案

时间:2013-12-05 21:12:34

标签: ios storyboard color-scheme

我有一个很好的小应用程序,我想在app商店发布,但我希望它有多个选项,只要配色方案。我使用单个故事板和Xcode 5构建了应用程序。我有一个建议,在我的Xcode项目中为每个配色方案存储单独的plist,然后读取键值对为元素分配颜色,但我不确定从哪里开始这样做。另外,当我查看我的项目的info.plist时,我看不到任何引用storyboard元素的行。任何帮助将不胜感激。

感谢您的时间!

2 个答案:

答案 0 :(得分:0)

你不应该使用info.plist。您可以添加其他自定义plist文件,这些文件可以保存数据。然后,您可以将这些文件读入NSDictionary个对象,并使用这些数据设置颜色和/或其他与UI相关的设置。这是个好主意,因为您可以在不触及代码的情况下添加或编辑颜色方案。您应该阅读有关属性列表的教程。

一旦你设置了你的UI元素并确定了什么是彩色的(独立于实际颜色),你就会将这些理解映射到字典中。例如,键:BarButtonItemsColor值:#FF0000,键:NavigationBarColors值:#00FF00。在此示例中,条形按钮项目映射到键,导航栏也是如此。现在您需要代码来读取此映射并实现实际的着色。我建议使用UIAppearance个代理。现在,您可以创建多个具有不同颜色的plist文件(并且基本上可以添加任意数量的plist主题),而无需实际更改解析器方法的代码,该方法读取plist并知道哪个键影响哪些UI元素。在这个例子中,我使用了十六进制颜色格式。

答案 1 :(得分:0)

如果您使用标准用户界面,则只需使用tintColor应用程序范围的属性即可。这样一切都将变为用户选择的颜色。

如果您想要完全自定义而不仅仅是色彩,我会推荐以下内容。在NSDefaults中保存配色方案的配置。在该配置中,为不同类型的控件保存不同的属性和颜色。例如,对于所有按钮,您可以保存要应用于currentTitleColortintColor的颜色。

然后使用主窗口的subviews属性遍历应用程序中的所有视图,并检测每个视图的控制方式(这样您就不需要保存控件的任何位置 - 您只需在运行时遍历所有这些。根据控件类型 - 使用默认值分配不同的属性。