CAAnimation -1 количество повторов? - PullRequest
13 голосов
/ 03 января 2011

как я могу заставить мои CAKeyframeAnimation иметь бесконечное число повторений?

Я пытался animation.repeatCount = -1;, но повторяется только один раз.

Ответы [ 5 ]

39 голосов
/ 21 февраля 2011

Вы также можете использовать

animation.repeatCount = INFINITY;

Это точно так же, как HUGE_VALF, но я предпочитаю INFINITY, поскольку он говорит сам по себе.

25 голосов
/ 03 января 2011

Попробуйте animation.repeatCount = HUGE_VALF;

7 голосов
/ 03 января 2011

Из документации по протоколу CAMediaTiming :

Если для этого свойства установлено значение HUGE_VALF, анимация будет повторяться вечно.

5 голосов
/ 31 мая 2016

В Swift я использую следующий код:

let animation = CATransition()
animation.repeatCount = Float.infinity
2 голосов
/ 25 декабря 2014

Просто перейдите к определению!
Неважно, что это будет: HUGE_VALF или INFINITY.
Потому что:

(math.h :)

#if defined(__GNUC__)
#   define    HUGE_VAL     __builtin_huge_val()
#   define    HUGE_VALF    __builtin_huge_valf()
#   define    HUGE_VALL    __builtin_huge_vall()
#   define    NAN          __builtin_nanf("0x7fc00000")
#else
#   define    HUGE_VAL     1e500
#   define    HUGE_VALF    1e50f
#   define    HUGE_VALL    1e5000L
#   define    NAN          __nan()
#endif

#define INFINITY    HUGE_VALF

и наконец (в соответствии с math.c):

/* FUNCTION: __builtin_huge_valf */   
inline float __builtin_huge_valf(void) { return 1.0f/0.0f; }

Так что каждый вариант будет в порядке:

animation.repeatCount = INFINITY;
animation.repeatCount = HUGE_VALF;
animation.repeatCount = __builtin_huge_valf();
animation.repeatCount = 1.0f/0.0f;
...