Анимация UIButton игнорирует селектор цели в Swift - PullRequest
0 голосов
/ 14 июня 2019

Я добавил этот код анимации в конец функции, которая вызывается при нажатии кнопки, но во время анимации он игнорирует установленный селектор цели до завершения анимации. Анимация очень быстрая, но я бы хотел, чтобы пользователи могли быстро нажимать на нее.

        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)
        })

1 Ответ

1 голос
/ 14 июня 2019

Взаимодействие с пользователем отключено на время анимации представления.Если важно, чтобы пользователь взаимодействовал с представлением во время анимации, вы можете передать параметр .allowUserInteraction, например, так:

UIView.animate(withDuration: 1.0, delay: 0.0, options: .allowUserInteraction, animations: {
    //animate here
})
...