Вот другой подход к реализации требуемой функциональности.
Создайте родительский класс с представлением содержимого, в котором вы хотите отображать содержимое.
class SuperView: UIView {
let contentView = UIView()
override init(frame: CGRect) {
super.init(frame: .zero)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
fatalError("init(coder:) has not been implemented")
}
}
Наследуйте класс BaseView от класса SuperView, и вы можете наследовать другие классы из класса BaseView.
class BaseView: SuperView {
override init(frame: CGRect) {
super.init(frame: .zero)
contentView.addSubview(UILabel()) // UILabel 1
contentView.addSubview(UILabel()) // UILabel 2
self.addSubview(contentView)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
fatalError("init(coder:) has not been implemented")
}
}
Наследовать класс SubView от класса SuperView, чтобы добавить различные свойства и функции, которые вы хотите. Здесь вам не нужно наследовать от класса BaseView.
class SubView: SuperView {
override init(frame: CGRect) {
super.init(frame: .zero)
contentView.addSubview(UILabel()) // UILabel 3
self.addSubview(contentView)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
fatalError("init(coder:) has not been implemented")
}
}
Надеюсь, это поможет вам реализовать требуемую функциональность по своему усмотрению.