2015-07-21 33 views
10

Hızlıca, "sınıf renkleri" kod sınıfında kullanılan bir uzantı (Obj-C kategorisi gibi) yazdım. IBInspectable veya başka bir şey kullanarak bu renk uzantısını, UIsipector örnek kullanımının çoğunda gördüğüm gibi UIView alt sınıflarına özel olarak eklemenin aksine Arayüz oluşturucu için erişilebilir hale getirmenin bir yolu olup olmadığını merak ediyorum.Arabirim Oluşturucu için Global Renk Paleti

extension UIColor { 
    // house blue 
    @IBInspectable var houseBlue: UIColor { return UIColor(red:(51/255), green:(205/255), blue:(255/255), alpha:(1)) } 

    // house gray 
    @IBInspectable var houseGray: UIColor { return UIColor(white:0.4, alpha: 1) } 

    // house white 
    @IBInspectable var houseWhite: UIColor { return UIColor.whiteColor() } 
} 
+1

Bu harika olurdu! Ama bilgim mümkün değil. Bununla birlikte, Arayüz Oluşturucu'nun içine özel bir renk paleti ekleyebilirsiniz, ancak bunların sadece orada kullanım için uygun olduğunu düşünüyorum. –

+0

Sadece storyboard'larda kullanmaya çalışıyorsunuz ama gerçek kodunuzda değil, UIView.backgroundColor = x' gibi mi? –

+0

Her ikisi de, gerçekten. @CodyWeaver – achi

cevap

3

olarak bildiğim kadarıyla, programlama yoluyla ardından Interface Builder görünecektir renkleri tanımlamak, ancak özel renkler kodunuzda kullanmak için size UIColor uzatabilirsiniz:

extension UIColor { 

    static func myCustomColor() -> UIColor { 
    return UIColor(red: 23/255.0, green: 175/255.0, blue: 72/255.0, alpha: 1.0) 
    } 

} 

myView.backgroundColor = UIColor.myCustomColor() 

Bu, soruna çözmez, ama potansiyel olarak IB aracılığıyla daha programlama renkleri ayarlamak için daha iyi olabilir: ve özel bir renk başvurmak için. Arayüz Oluşturucu aracılığıyla her UI öğesi için birden çok kez ayarlamak zorunda kalmadan uygulama boyunca bir rengi değiştirmek için kodda bir değeri bir kez ayarlamanıza izin verir.