Я не уверен, почему вы используете UIView как кнопку, но если вы хотите сделать это, просто выполните следующее:
1) Создайте пользовательский класс UILabel
class LAUILabel: UILabel {
//you can even define some params like @IBOutlet images ...
override init(frame: CGRect) {
super.init(frame: frame)
updateUI()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
updateUI()
}
private func updateUI() {
backgroundColor = .red
textColor = .green
numberOfLines = 1
textAlignment = .center
}
}
2) Создайте свой MainscreenButton
class MainscreenButton: UIView {
@IBOutlet weak var icon: LAUILabel!
@IBOutlet weak var info: LAUILabel!
required init(coder aDecoder: NSCoder){
super.init(coder: aDecoder)!
print("mainscreenbutton requiredinit")
}
override init(frame: CGRect) {
super.init(frame: frame)
print("mainscreenbutton frameinit")
}
}
3) Соедините ваш пользовательский интерфейс с вашими пользовательскими классами, перейдите в раскадровку или файлы Xib и перетащите представление, перейдите в Identity Inspector, затем вставьте имя вашего класса'MainscreenButton' в пользовательском классе после этого перетащите UILabels в это представление и измените пользовательский класс из инспектора идентификации, как до 'LAUILabel', а затем свяжите метки с базовым пользовательским интерфейсом, который должен работать.
4) В противном случаеВы можете создать ярлык без раскадровки следующим образом:
class MainscreenView: UIView {
required init(coder aDecoder: NSCoder){
super.init(coder: aDecoder)!
print("mainscreenbutton requiredinit")
let icon = LAUILabel(frame: CGRect(origin: CGPoint(x: 100, y: 50), size: CGSize.zero))
icon.text = "icon"
icon.sizeToFit()
addSubview(icon)
let info = LAUILabel(frame: CGRect(origin: CGPoint(x: 200, y: 50), size: CGSize.zero))
info.text = "info"
info.sizeToFit()
addSubview(info)
}
override init(frame: CGRect) {
super.init(frame: frame)
print("mainscreenbutton frameinit")
}
}