Подтвердить что ты не робот

Счетчик повторов CAAnimation -1?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

animation.repeatCount = INFINITY;

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

Ответ 3

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

Установка этого свойства в значение HUGE_VALF приведет к повторному воспроизведению анимации.

Ответ 4

Просто перейдите к определению!
Не важно, что это будет: либо 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;

Ответ 5

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

let animation = CATransition()
animation.repeatCount = Float.infinity