Подтвердить что ты не робот

CABasicAnimation неограниченное повторение без HUGE_VALF?

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

4b9b3361

Ответ 1

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

Установка этого свойства в значение HUGE_VALF приведет к повторному воспроизведению анимации.


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

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

myAnimation.repeatCount = .infinity

Ответ 2

Для быстрого 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")