CAAnimation -1重复次数?

14

我如何让我的CAKeyframeAnimation无限重复播放?

我尝试使用 animation.repeatCount = -1;,但它只会重复一次。

5个回答

41

你也可以使用

animation.repeatCount = INFINITY;

这与HUGE_VALF完全相同,但我更喜欢使用INFINITY,因为它本身就很清楚明了。


4
Swift 中的 Float.infinity 表示浮点数的正无穷大。 - Valeriy Van

26

尝试使用 animation.repeatCount = HUGE_VALF;


8
Swift 中的 Float.infinity。 - Valeriy Van

7

根据 CAMediaTiming 协议文档:

将此属性设置为 HUGE_VALF 将导致动画无限重复。


5

在Swift中,我正在使用以下代码:

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

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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接