Я добавил этот код анимации в конец функции, которая вызывается при нажатии кнопки, но во время анимации он игнорирует установленный селектор цели до завершения анимации. Анимация очень быстрая, но я бы хотел, чтобы пользователи могли быстро нажимать на нее.
let transforms: CGAffineTransform = .identity
mirroredButton.transform = transforms
UIView.animate(withDuration: 0.05, animations: {
mirroredButton.transform = transforms.scaledBy(x: 0.75, y: 0.75)
},
completion: { _ in
UIView.animate(withDuration: 0.1) {
mirroredButton.transform = transforms.scaledBy(x: 1.0, y: 1.0)
}
})
Обновление:
Используя ответ, я обновил код анимации, как показано ниже. Оба анимационных вызова нуждаются в опциях. 2-й имеет нулевой обработчик завершения.
let transforms: CGAffineTransform = .identity
mirroredButton.transform = transforms
UIView.animate(withDuration: 0.05, delay: 0.0, options: .allowUserInteraction, animations: {
mirroredButton.transform = transforms.scaledBy(x: 0.75, y: 0.75)
},
completion: { _ in
UIView.animate(withDuration: 0.1, delay: 0.0, options: .allowUserInteraction, animations: {
mirroredButton.transform = transforms.scaledBy(x: 1.0, y: 1.0)
}, completion:nil)
})