2015-05-06 38 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. 为@马特指出, - 不要调用具有类型名称的属性。