У меня есть класс, который управляет позиционированием элементов UIKit, используя 'frame':
class EasyPos: UIView {
var screenWidth = UIScreen.main.bounds.width
var screenHeight = UIScreen.main.bounds.height
var x: CGFloat = 0 { didSet { self.updateFrame() } }
var y: CGFloat = 0 { didSet { self.updateFrame() } }
var width: CGFloat = 0 { didSet { self.updateFrame() } }
var height: CGFloat = 0 { didSet { self.updateFrame() } }
func updateFrame() {
frame = CGRect(x: x, y: y, width: width, height: height)
if x < 0 {
frame = CGRect(x: screenWidth - abs(x) - width, y: frame.minY, width: frame.width, height: frame.height)
}
if y < 0 {
frame = CGRect(x: frame.minX, y: screenHeight - abs(y) - height, width: frame.width, height: frame.height)
}
}
required init(x: CGFloat = 0, y: CGFloat = 0, width: CGFloat = 40, height: CGFloat = 40) {
self.x = x
self.y = y
self.width = width
self.height = height
super.init(frame: .zero)
updateFrame()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Теперь я хочу добавить один класс, который наследует от UIbutton, и один, который наследует от UILabel.И они оба должны иметь возможность использовать методы из класса EasyPos.Как мне это сделать?(Я пробовал наследование от двух классов, не работало)
Я знаю, что это как-то связано с протоколами.Но я не мог заставить это работать.
Спасибо за вашу помощь;)