【问题标题】:iOS - Storyboard - Use a programmatically define color in the configuration palette of storyboardiOS - 故事板 - 在故事板的配置调色板中使用以编程方式定义的颜色
【发布时间】:2014-12-20 08:59:16
【问题描述】:

我试图找到一种方法来处理多个目标(从一个项目部署多个应用程序),我不知道如何定义 UIColor 并在情节提要中使用它(我可以很好地处理 UIImage)。我的想法是用宏根据目标切换这个颜色的值,有人知道这是否可能?

也许定义一种颜色:

var myColor : UIColor
#ifdef target1
myColor = UIColor(red: 249.0/255, green: 249.0/255, blue: 249.0/255, alpha: 1.0)
#ifdef target2
myColor = UIColor(red: 210/255, green: 100/255, blue: 90/255, alpha: 1.0)
#endif

或复制故事板以按目标拥有一个故事板。使用 info-target1.plist、info-target2.plist ?

并在情节提要中将此变量称为“myColor”

如果没有解决方案,我认为我需要设置所有属性:颜色、字体、大小、以编程方式而不是在情节提要中。

我需要遵循哪种方法?

谢谢

【问题讨论】:

    标签: xcode colors storyboard target targets


    【解决方案1】:

    从 Xcode 9 开始,您可以在资源中定义和命名颜色;只需在 Xcode 中打开资产,右键单击并选择“新建颜色集”。定义后,可以在故事板颜色选择器中按名称选择颜色或以编程方式引用颜色,例如:

    let green = UIColor(named: "MySpecialGreen")
    

    【讨论】:

    【解决方案2】:

    如果没有解决方案,我认为我需要设置所有属性:颜色、字体、大小、以编程方式而不是在情节提要中。

    无法根据编译时参数改变情节提要场景中的颜色或其他属性。通常,处理此类问题的正确方法是使用UIAppearance 覆盖您要更改的属性。简而言之,任何实现UIAppearance 协议的类都可以提供一个代理对象,让您可以调整该类将使用的特征。例如,如果你想在你的应用中调整导航栏的颜色,你可以有条件地定义myColor,然后使用UINavigationBar的外观代理来设置色调颜色:

    [[UINavigationBar appearance] setBarTintColor:myColor];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-22
      • 2013-10-20
      • 1970-01-01
      • 2021-08-29
      • 2015-04-06
      • 2012-04-07
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多