【问题标题】:Two Different Color Schemes for 1 Storyboard1 个故事板的两种不同配色方案
【发布时间】:2013-12-13 06:11:54
【问题描述】:

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

感谢您的宝贵时间!

【问题讨论】:

  • 您使用的是标准 UI 还是自定义界面?
  • 我使用的是标准 UI。抱歉回复晚了!

标签: ios storyboard color-scheme


【解决方案1】:

如果您使用标准 UI,您可以简单地使用 tintColor 应用程序范围的属性。这样,所有内容都将更改为用户选择的颜色。

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 好的,所以我正在尝试解决这个问题。此时,我创建了一个新的 plist 并将其命名为 Green Scheme。在 plist 中,我已将类型更改为字典,但我感到困惑的是 plist 中的实际内容是什么?例如,如果我有一个只有 1 个按钮的应用程序,并且我想使用我创建的 plist 将按钮的背景颜色设置为绿色,那么 plist 中有哪些项目来完成此操作?完成后,我假设我会以某种方式在“viewDidLoad”方法或“didFinishLaunchingWithOptions”方法中读取键值对?
    猜你喜欢
    • 2013-04-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多