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

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


person Centurion    schedule 16.08.2011    source источник
comment
Значение 1e50, в math.h.   -  person bcattle    schedule 25.06.2014
comment
В XCode нажмите ⌘, чтобы перейти к определению чего-либо.   -  person bcattle    schedule 25.06.2014


Ответы (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
comment
в iOS 7 и выше он останавливается через определенный интервал. Не уверен, в чем причина. - person SRP-Achiever; 20.08.2014
comment
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