2014-12-20 28 views
8

Cerco di trovare un modo per gestire più destinazioni (distribuire più app da un progetto), non so come definire un UIColor e utilizzare nello storyboard (posso farlo bene per UIImage). La mia idea è di cambiare il valore di questo colore in base all'obiettivo con macro, qualcuno sa se è possibile?iOS - Storyboard - Usa un colore a livello di programmazione nella tavolozza di configurazione dello storyboard

Forse definire un colore:

var myColor : UIColor 
#ifdef target1 
myColor = UIColor(red: 249.0/255, green: 249.0/255, blue: 249.0/255, alpha: 1.0) 
#ifdef target2 
myColor = UIColor(red: 210/255, green: 100/255, blue: 90/255, alpha: 1.0) 
#endif 

o duplicare storyboard per avere uno storyboard per target. Usa info-target1.plist, info-target2.plist?

E non chiamate questa variabile "myColor" in storyboard

Se non esiste una soluzione, penso che ho bisogno di impostare tutti gli attributi: colore, font, dimensione, a livello di codice e non nella storyboard.

Quale metodo devo seguire?

Grazie

risposta

2

se non c'è soluzione, penso che ho bisogno di impostare tutti gli attributi: colore, font, dimensione, a livello di programmazione e non di storyboard.

Non c'è modo di variare i colori o altri attributi in una scena storyboard basata su parametri in fase di compilazione. Di solito, il modo giusto per avvicinarsi a qualcosa di simile è usare UIAppearance per sovrascrivere gli attributi che si desidera modificare. In poche parole, qualsiasi classe che implementa il protocollo UIAppearance può fornire un oggetto proxy che consente di regolare i tratti che la classe utilizzerà. Per esempio, se si desidera regolare il colore della barra di navigazione nella tua app, definire myColor condizionalmente come hai fatto e poi usare UINavigationBar s' aspetto proxy per impostare il colore della tinta:

[[UINavigationBar appearance] setBarTintColor:myColor];