У меня есть 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()
}
Пролив и Неразрушающий призваны по порядку, а не по повторению.
Выпуск
В первый раз анимация работает с правильной продолжительностью. Когда Стрэйт звонил в первый раз, а когда Неразбойник звонил в первый раз. После этого они, похоже, теряют продолжительность анимации. Изменения кажутся мгновенными.