Основываясь на этом ответе,
Я создал TextMarginLabel
подклассы из UILabel
, чтобы добавить margin/padding в текст внутри UILabel. Но он не добавляет никаких преимуществ, может ли кто-нибудь, пожалуйста, указать, где я ошибаюсь.
Вот моя подклассовая метка
class TextMarginLabel: UILabel {
//override func drawText(in rect: CGRect) {
override public func drawText(in rect: CGRect) {
let insets = UIEdgeInsets.init(top: 10, left: 5, bottom: 10, right: 5)
super.drawText(in: UIEdgeInsetsInsetRect(rect, insets))
}
}
Здесь я создаю метку, добавляя ее к ограничениям представления и установки
override func viewDidLoad() {
super.viewDidLoad()
let testingLabel : TextMarginLabel = {
let label = TextMarginLabel()
label.text = "This is a test label"
label.backgroundColor = UIColor.white
return label
}()
....
}
Добавление метки в представление
self.view.addSubview(testingLabel)
testingLabel.translatesAutoresizingMaskIntoConstraints = false
Просмотров Dict
let viewsDict = ["testingLabel" : testingLabel]
Вот ограничения, установленные для testingLabel
self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-10-[testingLabel]", options: [], metrics: nil, views: viewsDict))
self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[testingLabel]|", options: [], metrics: nil, views: viewsDict))