2015-05-06 51 views
-1

我想在iOS中創建一個UIView全局擴展,使得interfacebuilder中的所有UIView將具有用於更改顏色的運行時屬性。我知道一個視圖已經有一個屬性來改變顏色,但我的將被稱爲germanyColor,只爲德國工作這就是爲什麼我想要另一個IBInspectable創建。xcode - @IBInspectable如何添加顏色字段

,這裏是我的UIView擴展到目前爲止這它編譯爲我得到的CALayer沒有顏色屬性的錯誤:

extension UIView { 
@IBInspectable var germanyColor: CGFloat { 
    get { 
     return layer.cornerRadius //how can i get this to set a color instead ? 
    } 
    set { 
     layer.cornerRadius = newValue 
    } 
} 

}

我的最終目標是擁有一個germanyColor選項對於interfaceBuilder中的每個UIView元素。

回答

1

與你的代碼問題一堆:

  1. 你不能在擴展創建一個存儲的屬性,因此,你必須繼承UIView有你的額外germanyColor財產。

  2. 的UIView的layer沒有屬性命名UIColor,所以你不能使用它 - 這就是爲什麼你的代碼不能編譯(儘管它有多種其他的問題..)

  3. 爲@馬特指出, - 不要調用具有類型名稱的屬性。