У меня есть пользовательский интерфейс, в котором у меня есть несколько элементов, которые я хочу анимировать после нажатия кнопки «registerSerialNumberButton».
Сама кнопка тоже анимируется и получает новый объект .addtarget, но проблемав том, что кнопка становится не щелкаемойЭто видно, и я могу изменить все свойства визуально.Но больше нельзя нажимать на кнопку.
Я пытался установить большее значение альфа-канала, но это не сработало.Я также попытался переместить рамку кнопки вверх, но это, похоже, тоже не влияет на кликабельность.
Я также попытался добавить .isEnabled = true ... не сработало
это создание кнопки
let registerSerialNumberButton: UIButton = {
let button = UIButton(type: .system)
button.setTitle("Register my nano", for: .normal)
button.backgroundColor = UIColor.rgb(red: 17, green: 154, blue: 237)
button.layer.cornerRadius = 10
button.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
button.setTitleColor(UIColor.white, for: .normal)
button.addTarget(self, action: #selector(startEditingSerialNumberInput), for: .touchUpInside)
button.isEnabled = true
button.constrainHeight(constant: 60)
return button
}()
эта функция вызывается при первом нажатии
@objc func startEditingSerialNumberInput() {
animateRegisterFormUp()
self.registerSerialNumberButton.addTarget(self, action: #selector(self.saveSerialNumberFunction), for: .touchUpInside)
}
это функция анимации
func animateRegisterFormUp() {
UIView.animate(withDuration: 0.72, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.7, options: .curveEaseInOut, animations: {
self.registerTitlelabel.transform = .init(translationX: 0, y: -100)
self.registerdescriptionLabel.transform = .init(translationX: 0, y: -100)
self.serialnumberInput.transform = .init(translationX: 0, y: -100)
self.registerSerialNumberButton.transform = .init(translationX: 0, y: -140)
self.registerSerialNumberButton.backgroundColor = .red
self.registerSerialNumberButton.addTarget(self, action: #selector(self.saveSerialNumberFunction), for: .touchUpInside)
self.registerSerialNumberButton.isUserInteractionEnabled = true
}, completion: nil)
}
РЕДАКТИРОВАТЬ
Я загружаю кнопку в представление с использованием стека.
let stackviewButtons = UIStackView(arrangedSubviews: [registerSerialNumberButton, dothislaterButton])
stackviewButtons.axis = .vertical
stackviewButtons.alignment = .fill
stackviewButtons.spacing = 10
let stackview = UIStackView(arrangedSubviews: [registerTitlelabel, registerdescriptionLabel, serialnumberInput, stackviewButtons])
stackview.axis = .vertical
stackview.spacing = 20
stackview.setCustomSpacing(40, after: registerdescriptionLabel)
stackview.setCustomSpacing(100, after: serialnumberInput)
view.addSubview(stackview)
stackview.anchor(top: nil, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 0, paddingLeft: 20, paddingBottom: 0, paddingRight: 20, width: 0, height: 0)
stackview.centerXInSuperview()
stackview.centerYInSuperview()