CATransaction Animation Issue - PullRequest
       31

CATransaction Animation Issue

0 голосов
/ 02 апреля 2019

У меня есть CAShapeLayer и я пытаюсь оживить несколько свойств. Вначале я использовал CABasicAnimation, но так как этот цикл повторяется снова и снова, мне нужен наиболее удобный способ сделать это.

Следующий код корректно анимируется:

    private func animateDidBecomeStraight () {
            CATransaction.flush()
            CATransaction.begin()
            CATransaction.setAnimationDuration(0.2)
                self.myShape.fillColor = UIColor.Red.cgColor
                self.myShape.lineWidth = 1
                self.myShape.strokeColor = UIColorRed.cgColor
            CATransaction.commit()
    }

 private func animateDidBecomeUnStraight () {

        CATransaction.begin()
        CATransaction.setAnimationDuration(0.5)
            self.myShape.fillColor = UIColor(white: 1, alpha: 1).cgColor
            self.myShape.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).cgColor
            self.myShape.lineWidth = 0.1
        CATransaction.commit()

    }

Пролив и Неразрушающий призваны по порядку, а не по повторению.

Выпуск

В первый раз анимация работает с правильной продолжительностью. Когда Стрэйт звонил в первый раз, а когда Неразбойник звонил в первый раз. После этого они, похоже, теряют продолжительность анимации. Изменения кажутся мгновенными.

1 Ответ

1 голос
/ 02 апреля 2019

CATransaction не как это сделать. Создайте два объекта CABasicAnimation, один для прямой и другой для прямой. Объедините их вместе в CAAnimationGroup. Теперь настройте CAAnimationGroup как повторяющуюся.

...