Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

xCode 4.3 how to programmatically access interface builder palette colors?

I'm building the interface within interface builder and see that there's a variety of color palettes available for selecting font and background colors:

background color>other>color widget 3rd tab > Palette

Some of them have weird names like "Ice", "Sky", etc.

From my code I have access to

[UIColor blueColor];
[UIColor cyanColor];

Is there a way for me to access these additional colors by name from my code? For example,

//Is there a method call that does something like this?
[Color colorNamed:@"Ice" inPalette:@"Apple"];

Thank you!

like image 359
Alex Stone Avatar asked Jun 13 '12 14:06

Alex Stone


1 Answers

You would need to get the RGB values of the colors you need from the crayon colors. You could access them that way, "Sky" would be: [UIColor colorWithRed:(102.0/255.0) green:(204.0/255.0) blue:(255.0/255.0) alpha:1.0];

Or add UIColor categories that add all of the colors you need: [UIColor skyColor];

In UIColor+Colors.h add:

@interface UIColor (Colors)
+(UIColor *)skyColor;
@end

In UIColor+Colors.m add:

@implementation UIColor (Colors)
+(UIColor *)skyColor
{
  static UIColor *color = nil;
  if (!color)
    color = [[UIColor alloc] initWithRed:(102.0/255.0) green:(204.0/255.0) blue:(255.0/255.0) alpha:1.0];
  return color;
}
@end
like image 113
mccrager Avatar answered Nov 03 '22 02:11

mccrager