UIView Анимация в Swift - PullRequest
       46

UIView Анимация в Swift

0 голосов
/ 27 февраля 2020

Может кто-нибудь сказать мне, какую ошибку я совершил в следующем коде?

 func animateView(view: UIView){
       view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
        UIView.animate(withDuration: 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut, animations: {
            self.view.transform = .identity
        }, completion: nil)
    }

enter image description here

Мне нужна анимация, подобная этой. Я читал это в каком-то блоге, но я не понял, как его использовать. Заранее спасибо

1 Ответ

0 голосов
/ 27 февраля 2020

Ошибка заключается в первой строке, где вы устанавливаете transform на шкалу (1, 1):

view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)

CGAffineTransform(scaleX: 1.0, y: 1.0) означает шкалу с масштабным коэффициентом 1, то есть нормальная шкала. Это эквивалентно .identity, поэтому вы просите его анимировать преобразование из преобразования идентификатора в преобразования идентификатора.

Я предполагаю, что вы Возможно, вы подумали, что (1, 1) означает 1 пиксель на 1 пиксель?

Вместо этого вы должны изначально установить масштаб на (0, 0):

view.transform = CGAffineTransform(scaleX: 0, y: 0)

Ваша вторая ошибка - анимация self.view , а не параметр view. Вероятно, это опечатка.

, поэтому весь ваш метод выглядит так:

func animateView(view: UIView){
   view.transform = CGAffineTransform(scaleX: 0, y: 0)
    UIView.animate(withDuration: 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut, animations: {
        view.transform = .identity
    }, completion: nil)
}
...