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

问题描述 投票:9回答:2

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

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

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

[[UINavigationBar appearance] setBarTintColor:myColor];

1
投票

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

let green = UIColor(named: "MySpecialGreen")
© www.soinside.com 2019 - 2024. All rights reserved.