Я ищу решение моей проблемы.У меня есть класс, который создает для меня UIButton:
class MenuButton: UIButton {
var x: CGFloat
var y: CGFloat
var width: CGFloat
var height: CGFloat
required init(parent: UIView = UIView(), 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)
frame = CGRect(x: x, y: y, width: width, height: height)
backgroundColor = global.labelColor
setTitleColor(#colorLiteral(red: 0, green: 0, blue: 0, alpha: 1), for: .normal)
layer.cornerRadius = self.frame.height / 2
if x < 0 {
frame = CGRect(x: superview?.frame.width ?? 0 - abs(x) - frame.width, y: frame.minY, width: frame.width, height: frame.height)
}
if y < 0 {
frame = CGRect(x: frame.minX, y: superview?.frame.height ?? 0 - abs(y) - frame.height, width: frame.width, height: frame.height)
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Затем я добавляю константу, назначенную этому классу:
let pauseButton = MenuButton()
Это работает нормально, и кнопка отображается насцена со всем по умолчанию.Теперь я хочу добавить эти вещи в viewDidLoad () (я добавил подпредставление, чтобы получить доступ к нему в классе):
view.addSubview(pauseButton)
pauseButton.x = -20
pauseButton.y = 20
pauseButton.width = 40
pauseButton.height = 40
Это не обновляет материал, который я указал в init ().Как мне снова вызвать init (без повторного выполнения pauseButton = MenuButton ()) или я могу использовать обновление ()?
Спасибо за вашу помощь;)