我试图找到一种方法来处理多个目标(从一个项目部署多个应用程序),我不知道如何定义UIColor并在故事板中使用它(我可以为UI
Image做得很好).我的想法是根据目标用宏切换这种颜色的值,有人知道它是否可能?
也许定义一种颜色:
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”
如果没有解决方案,我认为我需要设置所有属性:颜色,字体,大小,编程而不是故事板.
我需要遵循哪种方法?
谢谢
解决方法
If there is no solution,i think that i need to set all the attributes : color,font,size,programmatically and not in storyboard.
根据编译时参数,无法改变故事板场景中的颜色或其他属性.通常,正确的方法是使用UIAppearance
来覆盖您想要更改的属性.简而言之,任何实现UIAppearance协议的类都可以提供一个代理对象,允许您调整类将使用的特征.例如,如果要在应用程序中调整导航栏的颜色,请按照您的方式有条件地定义myColor,然后使用UINavigationBar的外观代理设置色调颜色:
[[UINavigationBar appearance] setBarTintColor:myColor];