我在玩@IBInspectables。我创建了一个可重用的自定义视图,其中包含一些 @IBInspectables。
有没有办法优先执行@IBInspectables?
在以下情况下,要修改占位符的颜色或字体,需要通过属性文本来完成。所以我需要在设置占位符文本的@IBInspectable 之前执行一些@IBInspectables,如字体、颜色。
在这种情况下,我已经完成了始终获取占位符颜色的解决方法。但是,我想向占位符添加更多属性,例如字体,但如果我不知道它们将执行哪个顺序,我将不得不从修改占位符的每个 IBInspectable 设置“attributedPlaceholder”)
@IBInspectable
var placeholder: String? {
didSet {
guard let placeholder = placeholder else { return }
textField.attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [NSAttributedStringKey.foregroundColor: placeholderColor ?? UIColor.red])
}
}
@IBInspectable
var placeholderColor: UIColor? {
didSet {
guard let placeholderColor = placeholderColor else { return }
textField.attributedPlaceholder = NSAttributedString(string: textField.placeholder != nil ? textField.placeholder! : "", attributes: [NSAttributedStringKey.foregroundColor: placeholderColor])
}
}