Я хочу создать подкласс UIButton и добавить дополнительную метку под меткой заголовка. Ярлык должен быть точно по центру и на 10 пикселей ниже заголовка. Также следует обновить информацию о любом изменении размера в Интерфейсном компоновщике. Как я мог этого добиться. В настоящее время у меня есть:
@IBDesignable
class MyButton: UIButton {
let additionalLabel = UILabel()
@IBInspectable var additionalValue: String = "Test" {
didSet {
additionalLabel.text = additionalValue
}
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.commonInit()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.commonInit()
}
func commonInit(){
updateView()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
updateView()
}
override func layoutSubviews() {
super.layoutSubviews()
// Set label size and position
additionalLabel.frame.size = CGSize(width: frame.width, height: 30)
additionalLabel.frame.origin = CGPoint(x: 0, y: 0)
additionalLabel.center.x = self.center.x
additionalLabel.center.y = self.center.y + 10
}
func updateView() {
setTitle("abc", for: .normal)
additionalLabel.text = additionalValue
addSubview(additionalLabel)
}
}
Но дополнительная метка отцентрирована не полностью и при изменении размера кнопки в IB не корректируется.