2014-12-20 14 views
8

ich versuche, einen Weg zu finden, mit mehreren Zielen (implementieren mehr App von einem Projekt) zu beschäftigen, ich weiß nicht, wie man eine UIColor zu definieren und zu verwenden Es ist in Storyboard (ich kann das gut für UIImage tun). Meine Idee ist es, den Wert dieser Farbe entsprechend dem Ziel mit Makros zu ändern, jemand weiß, ob es möglich ist?iOS - Storyboard - Verwenden Sie eine programmatisch Farbe in der Palette der Konfiguration definieren Storyboard

definieren Vielleicht eine Farbe:

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 

oder Storyboard kopieren ein Storyboard von Ziel zu haben. Verwenden Sie das info-target1.plist, info-target2.plist?

Und nennen Sie diese Variable „myColor“ in Storyboard

Wenn es keine Lösung gibt, glaube ich, dass ich alle Attribute festlegen müssen: Farbe, Schriftart, Größe, programmatisch und nicht in Storyboard.

Welche Methode muss ich befolgen?

Dank

Antwort

2

Wenn es keine Lösung gibt, glaube ich, dass ich alle Attribute festlegen müssen: Farbe, Schriftart, Größe, programmatisch und nicht in Storyboard.

Es gibt keine Möglichkeit, Farben oder andere Attribute in einer Storyboard-Szene basierend auf Kompilierzeit-Parametern zu variieren. Normalerweise ist der richtige Weg, um etwas wie dieses zu erreichen, UIAppearance zu verwenden, um die Attribute zu überschreiben, die Sie ändern möchten. Kurz gesagt, jede Klasse, die das UIAppearance Protokoll implementiert, kann ein Proxy-Objekt bereitstellen, mit dem Sie die Merkmale anpassen können, die die Klasse verwenden wird. Zum Beispiel, wenn Sie die Navigationsleiste der Farbe in Ihrer Anwendung anpassen mögen, definieren myColor bedingt, wie Sie und dann getan haben UINavigationBar ‚s Aussehen Proxy verwenden, um die Tönung Farbe einzustellen:

[[UINavigationBar appearance] setBarTintColor:myColor];