【发布时间】:2018-06-29 08:29:38
【问题描述】:
我可以通过 viewDidLoad() 成功实现以下代码(/函数)的变体,但是,我想将其集成到 IBDesignable 中,如下所述。
@IBDesignable
class kernedLabel: UILabel {
@IBInspectable var spacing: CGFloat = 10.4
override func draw(_ rect: CGRect) {
changeSpacing()
}
func changeSpacing(){
let stringValue=text ?? ""
let attrString = NSMutableAttributedString(string: stringValue)
attrString.addAttribute(NSAttributedStringKey.kern, value: spacing, range: NSMakeRange(0, attrString.length))
self.attributedText=attrString
}
}
我几乎可以肯定,失败的原因是调用了内部的函数
override func draw(_ rect: CGRect) {}
但是,我花了几个小时寻找替代方案但没有成功,我希望有人能够提供建议,或者朝着正确的方向前进。
【问题讨论】:
-
问题或问题是什么?
-
@Willeke 在按照上述方式实施时没有任何效果,我希望就如何更好地处理/修复任务提供一些提示/建议。
标签: swift ibdesignable kerning