UIView. Animate не работает против .animateKeyframes - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь выяснить, почему UIView.animate не работает должным образом.

Я знаю, с помощью UIView.animateKeyframes я могу объединить несколько типов анимаций вместе, но в этом случае я делаю только одну анимацию transform от текущего размера до 0.0.

Изображение вращения уже вращается с использованием CABasicAnimation до этого преобразования с использованием:

let spinAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
            spinAnimation.toValue = .pi * 2.0 // 360º spin
            spinAnimation.duration = 1.4
            spinAnimation.repeatCount = Float.greatestFiniteMagnitude // Repeat forever in loops.
            spinAnimation.isCumulative = true
            spinAnimation.isRemovedOnCompletion = false

            self.spinnerImageView.layer.add(spinAnimation, forKey: self.spinnerAnimationKey)

Анимация ключевого кадра UIView

 UIView.animateKeyframes(withDuration: Constants.AnimationDuration.standard, delay: 0.0, options: .calculationModeLinear, animations: {
        UIView.addKeyframe(withRelativeStartTime: 0.0, relativeDuration: 0.4, animations: {
            self.spinner.transform = CGAffineTransform(scaleX: 0.0, y: 0.0)
        })
    }) { (_) in
        super.endRefreshing()
    }

UIView Анимация

    UIView.animate(withDuration: 0.4, delay: 0.0, options: .curveLinear, animations: {
        self.spinner.transform = CGAffineTransform(scaleX: 0.0, y: 0.0)
    }) { (_) in
        super.endRefreshing()
    }

Анимация ключевого кадра работает так, как задумано, когда показывает анимационное изображение, уменьшенное до 0.0, но стандартная анимация просто приводит к исчезновению изображения. Разве они не должны действовать одинаково или потому, что изображение уже имеет слой CABasicAnimation, из-за которого animate не работает должным образом? Я бы предпочел использовать .animate, так как я делаю только преобразование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...