使用iOS类别创build新的颜色

我想创build一些在我的应用程序中使用的新的UIColor 。 时不时的RGB稍微调整(确切的色调正在辩论)

目前,我必须从RGB创build新的颜色,并将代码撒满并重复。

有没有更好的方法,我可以创build一个新的颜色,并通过我的应用程序使用。

 [UIColor myNewCustomRedColor] 

这里最好的模式是什么 – 类别是正确的select – 如果是这样的话? 如果不是,推荐的方法是什么。

类别是这样的一个很好的select。 我通常只是创build一个新的.h / .m文件对, MyCategories.h / MyCategories.m文件,它包含了所有你想要的常用类别。

MyCategories.h:

 @interface UIColor (MyCategory) + (UIColor *)customRedColor; @end 

MyCategories.m

 @implementation UIColor (MyCategory) + (UIColor *)customRedColor { return [UIColor redColor]; } @end 

您可以将.h文件导入到任何需要的位置,也可以将导入文件粘贴到MyApp-Prefix.pch文件中。

我在其他项目中使用的一种方法是创build一个ProjectStyle.h文件,该文件具有#定义自定义颜色和其他样式相关的常量。 你只需要导入它。

就像是:

 ProjectStyles.h #define RED_HEADER_COLOR [UIColor colorWithRed:0.8f green:0.1f blue:0.1f alpha:0.9f] #define RED_BACKGROUND_COLOR [UIColor colorWithRed:0.9f green:0.3f blue:0.1f alpha:1.0f] #define PRIMARY_FONT [UIFont fontWithName:@"HelveticaNeue-Bold" size:12.0f] 

如果你想创build一些UIColor或UIFont对象的常量实例,你也可以有一个对应的.m文件

 ProjectStyles.m + (UIColor *) redHeaderColor { return [UIColor colorWithRed:0.8f green:0.1f blue:0.1f alpha:0.9f]; } + (UIColor *) redBackgroundColor { return [UIColor colorWithRed:0.9f green:0.3f blue:0.1f alpha:1.0f]; } + (UIFont *) primaryFont { static UIFont *font = nil; if ( font == nil ) font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:12.0f]; return font; } 

然后当然在头上暴露这些

另一件我喜欢的ProjectStyle方法是,过一会儿,你会想要更多的自定义的东西不只是颜色 – 自定义字体,自定义线条和阴影。 有一个Style类或头部来放置所有这些东西给你一个地方来查找什么样的自定义元素已经定义了各种各样的东西,以及一个非常明显的#import为后来的编码器跟着回你的自定义信息。

如果您只是将自定义元素放在类别中,那么您最终会将自定义分散在多个类别中,并且还有可能(主要是远程)类别名称与其他第三方库的冲突。