修改覆盖属性willSet get/set的值

God*_*her 4 ios swift

我有一个自定义UILabel,我覆盖它的文本属性.我需要修改此属性的值,如果upperCase = true问题是我正在递归调用setter.

@IBDesignable class CustomLabel: UILabel {
@IBInspectable var upperCase: Bool = false
override var text: String? {
    willSet {
        if upperCase == true {
            text = newValue?.uppercaseString  
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var aux: String?
override var text: String? {
    get { return aux }
    set {  aux = newValue }
}
Run Code Online (Sandbox Code Playgroud)

但文本标签未设置.有什么建议吗?

Dan*_*rom 6

用超级

override var text: String? {
    get { return super.text }
    set(v){  super.text = v }
}
Run Code Online (Sandbox Code Playgroud)