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

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

我的问题是:iOS中是否存在类似的机制? 我在整个互联网search一种方法来创build自定义颜色一次在一些文件,并在我的iOS应用程序中使用它们,但没有发现任何东西。

提前致谢。

正如vokilambuild议的那样,使用UIColor创build一个类别并通过类别内部的类方法添加自定义颜色总是很好。 在一个class级里面有颜色的轨迹是非常方便和容易的。 就像是:

在Xcode中,文件 – >新build – >新build – >文件…cocoa触摸 – > Objective-C类别 – >下一步 – >在“类别”列表中selectUIColor – >给类别的名称 – – >下一步 – >创build

这给你.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等。

按照以下步骤创build一个资源文件,在其中保留你的颜色和值:

1.在您的项目资源中创build并添加一个plist文件。

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

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

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

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


你可以使用你的颜色文件,只要你想要的代码如下:

 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]; 

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