ios – 如何在Xcode中定义颜色方案

我想为我的iOS项目定义一个配色方案,以便更换一些颜色.假设我有一个“主”颜色和一个“辅助”颜色,在我的应用程序中的许多元素中使用,并且在将来我可能想要将“主”颜色设置为它当前具有的任何其他值.

到目前为止,我一直在使用自定义UIColor类别来定义和使用代码中的颜色,并创建具有相同颜色的调色板,以便在IB和Storyboard中使用它.

这样,替换代码中的颜色非常简单,但在IB和Storyboard中执行它是如此痛苦……我找不到一种简单的方法来查找/替换颜色.

我怎么能设法做到这一点?我愿意接受任何建议.先感谢您

编辑1:也许这个问题不够明确.我想创建一个方案,例如我可以在代码和IB中使用它,但是只定义颜色一次,并且能够以在代码和IB中引用的颜色相应地改变颜色的方式切换颜色.

解决方法

您可以选择循环在父视图中添加的子视图.并且可以定义一组要更改颜色的元素.

所以你的代码可能如下所示

-(void)defineColors:(UIView *)parent{

    for(UIView *view in parent.subviews){

      if(view.tag == TAG1){
        [self setColor:COLOR1 forControl:view];
      }else if(view.tag == TAG2){
        [self setColor:COLOR2 forControl:view];
      }

    }

}

-(void)setColor:(UIColor *)color forControl:(UIView *)control{

      if([control isKindOfClass:[UILabel class]]){
                [(UILabel *)view setBackgroundColor:color];
      }else if([control isKindOfClass:[UITextField class]]){
                [(UITextField *)view setTextColor:color];
      }

      //So on..


}

我希望它有所帮助.

干杯.

代码已更新

您可以选择为要分配特定颜色的控件定义标记集,然后相应地设置颜色.

更新2

根据您编辑的问题,您可以拥有一个独立的xib,您可以在其中添加不同的小UIView,并且可以从xib定义颜色.为不同的观点创建出口.然后在AppDelegate中加载nib以获取您想要使用应用程序的不同颜色,并且可以将它们保存到Singleton类中,以便您可以随时获取它们而无需多次初始化.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...