CABasicAnimation безгранично повторяется без HUGE_VALF? - PullRequest
40 голосов
/ 16 августа 2011

Я пытаюсь выполнить автоматическое повторение анимации вращения изображения с помощью CABasicAnimation. Я пытался найти в Интернете, как установить такое свойство, но не смог его найти. Неужели такого свойства нет для CA-анимации? Я знаю, что вы можете установить какое-то огромное значение ( здесь ) для свойства repeatCount, но, эй, тогда почему UIView animateWithDuration имеет опцию UIViewAnimationOptionRepeat и какое значение для него жестко закодировано?

Ответы [ 2 ]

125 голосов
/ 16 августа 2011

Нет, вы должны делать это в соответствии с документацией .

Если для этого свойства установлено значение HUGE_VALF, анимация будет повторяться вечно.


Обновление для Swift:

HUGE_VALF не подвергается Swift.Однако из этой страницы я понимаю, что HUGE_VALF должен быть бесконечным (на самом деле INFINITY определяется как HUGE_VALF).Поскольку протокол Swift FloatingPointType обеспечивает static var infinity, вы можете просто написать

myAnimation.repeatCount = .infinity
6 голосов
/ 19 апреля 2017

Для Swift 3.0 и выше

              let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
          rotationAnimation.fromValue = 0
          rotationAnimation.toValue = CGFloat.pi * 2
          rotationAnimation.duration = 1
          rotationAnimation.repeatCount = .infinity
          holderView.btnRefresh.layer.add(rotationAnimation, forKey: "spinAnimation")
...