xCode - @IBInspectable如何添加颜色字段

时间:2015-05-06 20:21:47

标签: ios xcode uiview

我想在iOS中创建一个UIView全局扩展,以便interfacebuilder中的所有UIView都有一个运行时属性来改变颜色。我知道一个视图已经有一个属性来改变颜色,但我的名字将被称为germanyColor,只适用于德国,这就是为什么我想要创建另一个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
    }
}

}

我的最终目标是为interfaceBuilder中的每个UIView元素设置一个germanyColor选项。

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题:

  1. 您无法在扩展程序中创建存储的属性,因此您必须继承UIView以获得额外的germanyColor属性。

  2. UIView的layer没有名为UIColor的属性,因此您无法使用它 - 这就是您编码的原因所在编译(虽然它还有其他多个问题..)

  3. 正如@matt指出的那样 - 不要使用名称类型的属性调用该属性。