CAAnimation -1重复计数?

时间:2011-01-03 00:20:14

标签: iphone core-animation cakeyframeanimation

如何让我的CAKeyframeAnimation有一个永无止境的重复计数?

我试过animation.repeatCount = -1;,但它只重复一次。

5 个答案:

答案 0 :(得分:39)

您也可以使用

animation.repeatCount = INFINITY;

这与HUGE_VALF完全相同,但我更喜欢INFINITY,因为它本身就说明了。

答案 1 :(得分:25)

尝试animation.repeatCount = HUGE_VALF;

答案 2 :(得分:7)

来自CAMediaTiming协议的文档:

  

将此属性设置为HUGE_VALF将导致动画永远重复。

答案 3 :(得分:5)

在Swift中我使用以下代码:

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

答案 4 :(得分:2)

只是去定义!
无论它是什么: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;