2011-01-18 2 views
1

Я хочу, чтобы мои цвета были согласованно совместимы как с Mac, так и с iOS версиями моего приложения. Согласно CGColor.h, функция, создавая цвет, который будет использоваться Mac и кодом iOS.

CGColorCreate(CGColorSpaceRef space, const CGFloat components[]) 

предлагается на обеих платформах. Но это кажется досадным тяжелым весом. Есть ли более простой способ?

Спасибо.

ответ

1

Лично я бы, наверное, просто пойти с:

#if TARGET_OS_IPHONE 
#define HSBA(h,s,b,a) [UIColor colorWithHue: h saturation: s brightness: b alpha: a] 
#else 
#define HSBA(h,s,b,a) [NSColor colorWithHue: h saturation: s brightness: b alpha: a] 
#endif 

id tangerine = HSBA(0.084,1.0,1.0,1.0); 

Другой выбор:

#if TARGET_OS_IPHONE 
#define MYCOLOR UIColor 
#else 
#define MYCOLOR NSColor 
#endif 

MYCOLOR *tangerine = [MYCOLOR colorWithHue:0.084 saturation:1.0 brightness:1.0 alpha:1.0]; 

Еще один выбор будет создавать свою собственную функцию. :)

+0

Насколько я могу судить, NSColor не имеет свойства .CGColor. –

+0

Если вам нужна собственность CGColor, вы можете найти категорию, чтобы добавить ее без особых проблем. Конечно, это не изящно, но я предположил, что вы искали простой призыв. :) Похоже, что это может сработать: http://forrst.com/posts/CGColor_Additions_for_NSColor-1eW –

Смежные вопросы