如何在Swift(HUGE_VALF)中永远重复动画?

时间:2014-06-21 17:07:23

标签: swift cabasicanimation

根据文档,永远重复CABasicAnimation的方法是将其repeatCount设置为HUGE_VALF

但是在Swift中,HUGE_VALF会导致编译错误。 Swift似乎不知道标准库(或者这个常量所在的位置)。

我现在该怎么办?

3 个答案:

答案 0 :(得分:83)

repeatCount设置为Float.infinity。这编译并运作。

在任何情况下,HUGE_VALF都是遗留值。

但是,Swift没有看到这些数字常量名称,这有点令人惊讶。我确实尝试在桥接标题中导入<stdlib.h>,但它没有帮助。


但请现在看看Martin R的回答。自我发布答案以来,Apple明确表达了他们的首选答案:使用.greatestFiniteMagnitude。它与.infinity几乎相同但不完全相同!

答案 1 :(得分:1)

repeatCountCAMediaTiming属性的当前文档声明:

  

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

编译没有问题:

let ba = CABasicAnimation()
ba.repeatCount = .greatestFiniteMagnitude

HUGE_VALF未导入Swift的原因是 它被定义为<math.h>中的“非平凡”宏:

#   define    HUGE_VALF    __builtin_huge_valf()

答案 2 :(得分:0)

我使用&#34; HUGE&#34;值。它是一个build_in readonly var;