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