如何让我的CAKeyframeAnimation
有一个永无止境的重复计数?
我试过animation.repeatCount = -1;
,但它只重复一次。
答案 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;