2012-06-13 9 views
7

buduję interfejsu w interfejsie konstruktora i zobaczyć, że istnieje wiele różnych palet kolorów pozwala na wybranie czcionki i tła:xCode 4.3 jak programowo uzyskać dostęp do palety kolorów budowniczych interfejsu?

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

Niektóre z nich mają dziwne nazwy jak „Ice”, „Sky”, itp

z mojego kodu mam dostęp do

[UIColor blueColor]; 
[UIColor cyanColor]; 

Czy istnieje sposób dla mnie, aby uzyskać dostęp do tych dodatkowych kolorów wg nazwy z mojego kodu? Na przykład

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

Dziękujemy!

Odpowiedz

9

Musisz uzyskać wartości RGB kolorów, których potrzebujesz, z kolorów kredki. Można uzyskać do nich dostęp w ten sposób, "Niebo" będzie: [UIColor colorWithRed:(102.0/255.0) green:(204.0/255.0) blue:(255.0/255.0) alpha:1.0];

Albo dodać UIColor kategorie, które dodają wszystkie kolory potrzebne: [UIColor skyColor];

W UIColor+Colors.h add:

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

W UIColor+Colors.m dodatku :

@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 
+0

Dziękuję za rekomendację. Dokładam starań, aby nie myśleć o wartościach RGB i zamiast tego po prostu wybierać z wcześniej zdefiniowanych nazw palet. –

+2

Nie musisz "myśleć" o wartościach. Jeśli chcesz je z gotowych kredek, otwórz okienko kolorów, wybierz kartę kredki i żądaną kredkę, a następnie wybierz kartę RGB i zdefiniuj wartości RGB dla kredki. – mccrager

+7

W tym miejscu ktoś wykonał już całą pracę związaną z kategoriami: https://github.com/rob-brown/RBCategories/blob/master/UIColor+RBExtras.m – mccrager

Powiązane problemy