2012-06-13 11 views
7

Sto costruendo l'interfaccia all'interno di costruttore di interfaccia e vedere che c'è una varietà di tavolozze di colori disponibili per la selezione dei caratteri e colori di sfondo:xCode 4.3 come accedere a livello di programmazione ai colori della tavolozza del generatore di interfacce?

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

Alcuni di loro hanno nomi strani come "Ice", "Sky", ecc

dal mio codice ho accesso a

[UIColor blueColor]; 
[UIColor cyanColor]; 

c'è un modo per me per accedere a questi colori aggiuntivi per nome dal mio codice? Per esempio,

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

Grazie!

risposta

9

È necessario ottenere i valori RGB dei colori necessari dai colori pastello. Si potrebbe accedervi in ​​questo modo, "Sky" sarebbe: [UIColor colorWithRed:(102.0/255.0) green:(204.0/255.0) blue:(255.0/255.0) alpha:1.0];

Oppure aggiungi UIColor categorie che si aggiungono tutti i colori che avete bisogno: [UIColor skyColor];

In UIColor+Colors.h aggiuntivo:

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

Grazie per la segnalazione. Sto specificatamente cercando di evitare di dover pensare ai valori RGB e invece di scegliere semplicemente un nome di tavolo predefinito. –

+2

Non è necessario "pensare" ai valori. Se li vuoi dai pastelli predefiniti, apri il pannello dei colori, seleziona la linguetta del pastello e il pastello che desideri, quindi seleziona la scheda RGB e i valori RGB del pastello sono definiti per te. – mccrager

+7

Qui, qualcuno ha già fatto tutto il legwork per le categorie: https://github.com/rob-brown/RBCategories/blob/master/UIColor+RBExtras.m – mccrager