Я пытаюсь выполнить автоматический повтор анимации вращения изображения с помощью CABasicAnimation. Я пытался найти в Интернете, как установить такое свойство, но не смог найти. Неужели у CA-анимации такого свойства нет? Я знаю, что вы можете установить огромное значение (здесь) для свойства repeatCount, но почему тогда UIView animateWithDuration имеет параметр UIViewAnimationOptionRepeat и какое значение для него жестко запрограммировано?
CABasicAnimation неограниченный повтор без HUGE_VALF?
Ответы (2)
Нет, это то, как вы должны это делать в соответствии с документация.
Установка для этого свойства значения
HUGE_VALFприведет к тому, что анимация будет повторяться вечно.
Обновление для Swift:
HUGE_VALF не доступен для Swift. Однако насколько я понял из этой страницы, HUGE_VALF означает бесконечность (фактически, INFINITY определяется как HUGE_VALF). Поскольку протокол Swift FloatingPointType предоставляет static var infinity, вы можете просто написать
myAnimation.repeatCount = .infinity
person
jtbandes
schedule
16.08.2011
в iOS 7 и выше он останавливается через определенный интервал. Не уверен, в чем причина.
- person SRP-Achiever; 20.08.2014
Float.infinity в Свифте. В упомянутых документах упоминается HUGE_VALF, но не говорится, как выразить то же самое в Swift.
- person Valeriy Van; 05.08.2015
Для 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")
person
Hiren Panchal
schedule
19.04.2017
1e50, вmath.h. - person bcattle   schedule 25.06.2014