为啥 UIView 的扩展对除了放置在 IB 上的 UIView 之外的其他控件没有直接影响?
Posted
技术标签:
【中文标题】为啥 UIView 的扩展对除了放置在 IB 上的 UIView 之外的其他控件没有直接影响?【英文标题】:Why extension for UIView does not showing direct effect on other control except UIView placed on IB?为什么 UIView 的扩展对除了放置在 IB 上的 UIView 之外的其他控件没有直接影响? 【发布时间】:2017-03-16 10:50:05 【问题描述】:例如
@IBDesignable extension UIView
@IBInspectable var fillColor:UIColor?
set
backgroundColor=newValue
get
return backgroundColor//UIColor(cgColor: backgroundColor!)
我知道这是不必要的,但只是为了检查我已经创建了这个,发现如果在 UIView 中应用它可以直接工作,否则它不起作用。
有人可以建议我我错过了什么吗?我正在使用 swift 3.0.2。 在此先感谢:)
【问题讨论】:
【参考方案1】:试试这个
当你扩展 UIView 时
class AJView:UIView
@IBInspectable var fillColor:UIColor?
didSet
layer.backgroundColor = fillColor.cgColor
当使用扩展时
extension BTextField
@IBInspectable var fillColor:UIColor?
get
return self.fillColor
set
layer.backgroundColor = self.fillColor?.cgColor
希望它有效。 我已经编辑了答案,你现在可以查看
【讨论】:
这是错误的答案...因为 layer.backgroundColor 是 cgColor 而不是 UIColor 并且扩展不应该有存储的属性。所以你能不能说得更具体些……谢谢你的努力:) 请你不要再犯同样的错误了……我已经提到了你的错误。以上是关于为啥 UIView 的扩展对除了放置在 IB 上的 UIView 之外的其他控件没有直接影响?的主要内容,如果未能解决你的问题,请参考以下文章