简体   繁体   English

为什么UIView的扩展对放置在IB上的UIView以外的其他控件没有直接影响?

[英]Why extension for UIView does not showing direct effect on other control except UIView placed on IB?

For eg 例如

@IBDesignable extension UIView{
    @IBInspectable var fillColor:UIColor?{
        set{
            backgroundColor=newValue
        }
        get{
            return backgroundColor//UIColor(cgColor: backgroundColor!)
        }
    }
}

I know this is unnecessary but just for checking I have created this and found this is working directly if applied in UIView else its not working. 我知道这是没有必要的,但仅是为了检查我是否已创建它,并发现如果在UIView中应用它就可以直接工作,否则就无法工作。

Can anybody please suggest me am I missing something? 有人可以建议我我错过了什么吗? I am using swift 3.0.2. 我正在使用swift 3.0.2。 Thanks in advance :) 提前致谢 :)

try this 尝试这个

When you are extending a UIView 扩展UIView时

class AJView:UIView{
    @IBInspectable var fillColor:UIColor? {
       didSet {
           layer.backgroundColor = fillColor.cgColor
       }
    }
}

When Using With extension 与扩展一起使用时

     extension BTextField{
    @IBInspectable var fillColor:UIColor? {
        get{
            return self.fillColor
        }
        set {
            layer.backgroundColor = self.fillColor?.cgColor
        }
    }
}

Hope it works. 希望它能工作。 I have edited the answer, you can check now 我已经编辑了答案,您现在可以检查

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM