有没有办法将自定义颜色存储在文件中并从iOS中的代码访问它们



我是iOS新手,但我有一些Android编程经验。我记得在 Android 中,您可以在 colors.xml 文件中定义一组可以在代码中使用的自定义颜色,因此,每次必须在某个地方应用新颜色时,都无需以编程方式定义新颜色。

我的问题是:iOS中是否存在类似的机制?我已经在整个互联网上搜索了一种在某个文件中创建自定义颜色并在我的 iOS 应用程序中以编程方式使用它们的方法,但一无所获。

提前谢谢。

正如 vokilam 所建议的那样,使用 UIColor 创建一个类别并通过类别内的类方法添加您自己的自定义颜色总是好的。在单个类中跟踪颜色非常方便且容易。像这样:

在 Xcode 中,文件 -> 新建 --> 新建--->文件...Cocoa Touch -> Objective-C Category -> Next -> 在"类别"列表中选择 UIColor --> 为类别命名 --> 下一步 --> 创建

这给了你.h和.m文件...在 .h 文件中,添加一个自定义颜色方法,例如

+(UIColor *)customLightGreenColor;

在 .m 文件中,您可以实现类似这样的方法(您有不同的选项来设置您的颜色):

+(UIColor *)customlightGreenColor
{
    UIColor *lightGreenColor = [UIColor colorWithRed:0.5 green:0.87 blue:0.0 alpha:1.0];
    return lightGreenColor;
}

同样,您可以在类别中添加任意数量的颜色并在应用程序中使用它。希望这能给你一个提醒...

您可以使用类别扩展 UIColor 类,并在那里定义和实现颜色。喜欢[UIColor blackColor].

实际上,您可以从特定的颜色名称中抽象出来,并使用方法名称,例如primaryColorsecondaryColordefaultTextColoralternativeTextColorinverseTextColor等。

按照以下步骤创建一个资源文件,您将在其中保留颜色及其值:

1. 在项目资源中创建并添加plist文件。

2.plist类型设置为array。添加不同的颜色作为array elements

3. 将每种颜色(数组元素)的type设置为dictionary

4. 在每个元素中添加一个string项以设置每个项的color name

5.添加3 float items作为存储RGB color valuesRed, Green, Blue


您可以通过以下代码在任何地方使用颜色文件:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *colorsPlistPath = [documentsDirectory stringByAppendingPathComponent:@"Colors.plist"];
NSMutableArray *colors = [NSMutableArray arrayWithContentsOfFile:colorsPlistPath]];
//get color and their properties like:
NSDictionary *aColor = [colors objectAtIndex:0];
NSString *colorName = [aColor objectForKey:@"Color_Name"];
float redValue = [aColor floatForKey:@"Red"];
float greenValue = [aColor floatForKey:@"Green"];
float blueValue = [aColor floatForKey:@"Blue"];
UIColor *color = [UIColor colorWithRed:redValue/255.0f green:greenValue/255.0f blue:blueValue/255.0f alpha:1.0];

如果您已经知道如何创建和使用 plist 文件作为资源,整个过程对您来说会容易得多。

最新更新