[英]Modify the value overriding a property willSet get/set
我有一個自定義UILabel
,我覆蓋它的文本屬性。 如果upperCase = true
,我需要修改此屬性的值,問題是我以遞歸方式調用setter。
@IBDesignable class CustomLabel: UILabel {
@IBInspectable var upperCase: Bool = false
override var text: String? {
willSet {
if upperCase == true {
text = newValue?.uppercaseString
}
}
}
}
我也嘗試過:
var aux: String?
override var text: String? {
get { return aux }
set { aux = newValue }
}
但文本標簽未設置。 有什么建議嗎?
用超級
override var text: String? {
get { return super.text }
set(v){ super.text = v }
}
所選答案將向您展示如何在設置時修改文本,但它沒有專門解決問題,該問題詢問如何創建將自動使文本為大寫的UILabel
子類。
這是一個永遠是大寫的UILabel
子類
import UIKit
class UppercaseLabel: UILabel{
override var text: String?{
get{
return super.text
}
set(newText){
super.text = newText?.uppercaseString
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.