CABasicAnimation неограниченное повторение без огромного VALF?
Я пытаюсь выполнить автоматическое повторение анимации вращения моего изображения с помощью CABasicAnimation. Я попытался найти в интернете, как установить такое свойство, но не смог найти его. Действительно ли у CA animation нет такого свойства? Я знаю, что вы можете установить какое-то огромное значение (здесь) для свойства repeatCount, но Эй, почему тогда UIView animateWithDuration имеет опцию UIViewAnimationOptionRepeat и какое значение жестко закодировано для него?
2 ответов:
Нет, это то, как вы должны это делать в соответствии сдокументацией .
Установка этого свойства в
HUGE_VALFприведет к тому, что анимация будет повторяться вечно.
Обновление для Swift:
HUGE_VALF не подвергается воздействию Swift. Однако, как я понял из этой страницы , HUGE_VALF должен быть бесконечностью (на самом деле,
INFINITYопределяется какHUGE_VALF). Поскольку протокол SwiftFloatingPointTypeпредоставляетstatic var infinity, Вы можете просто напишитеmyAnimation.repeatCount = .infinity
Для 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")
Comments