iOS - 故事板 - 使用在故事板的配置选项板中以编程方式定义颜色

时间:2014-12-20 08:59:16

标签: xcode colors storyboard target targets

我试图找到一种方法来处理多个目标(从一个项目部署多个应用程序),我不知道如何定义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”

如果没有解决方案,我认为我需要设置所有属性:颜色,字体,大小,编程而不是故事板。

我需要遵循哪种方法?

由于

2 个答案:

答案 0 :(得分:2)

  

如果没有解决方案,我认为我需要设置所有属性:颜色,字体,大小,编程而不是故事板。

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

[[UINavigationBar appearance] setBarTintColor:myColor];

答案 1 :(得分:1)

从Xcode 9开始,您可以在Asset中定义和命名颜色;只需在Xcode中打开资产,右键单击并选择“新颜色集”。定义后,可以在情节提要板颜色选择器中通过名称选择颜色,也可以通过编程方式对其进行选择,例如:

let green = UIColor(named: "MySpecialGreen")