Я пытаюсь создать пользовательский UILabel
, мой первый подкласс работает как положено, я делаю некоторые изменения и изменения атрибутов шрифта.
@IBDesignable class LunaLbl: UILabel {
@IBInspectable dynamic open var fontSize: CGFloat = 25 {
didSet {
updateFont()
}
}
@IBInspectable dynamic open var fontName: String = Fonts.proDisplayBold.rawValue {
didSet {
updateFont()
}
}
@IBInspectable dynamic open var fontColor: UIColor = .lunaBlack {
didSet {
updateFont()
}
}
@IBInspectable dynamic open var lineSpacing: CGFloat = 1.2 {
didSet {
updateFont()
}
}
override open func draw(_ rect: CGRect) {
super.draw(rect)
updateFont()
self.adjustsFontSizeToFitWidth = false
}
func updateFont() {
let textContent = self.text
let textString = NSMutableAttributedString(string: textContent!, attributes: [
NSAttributedString.Key.font: UIFont(name: fontName, size: fontSize)!])
let textRange = NSRange(location: 0, length: textString.length)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = lineSpacing
textString.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: textRange)
textString.addAttribute(NSAttributedString.Key.foregroundColor, value: fontColor, range: textRange)
self.attributedText = textString
}
}
Теперь мой второй подкласс, который наследуется от моего первого подкласса, ничего не отображается на моем экране.
@IBDesignable class LunaTitleLbl : LunaLbl {
override open func draw(_ rect: CGRect) {
super.draw(rect)
fontSize = 25.0
fontName = Fonts.proDisplayBold.rawValue
fontColor = .lunaBlack
updateFont()
self.adjustsFontSizeToFitWidth = false
}
}
Я делаю то же самое, я наследую свой новый подкласс напрямую от раскадровки, но ничего не отображается, когда я отлаживаю его с использованием иерархии представлений, моя метка была создана, и она принимает значения, которые я хочу, но текст не отображается.
Вот как я наследую свой подкласс
![enter image description here](https://i.stack.imgur.com/9vNYY.png)