根据文档,永远重复CABasicAnimation的方法是将其repeatCount
设置为HUGE_VALF
。
但是在Swift中,HUGE_VALF
会导致编译错误。 Swift似乎不知道标准库(或者这个常量所在的位置)。
我现在该怎么办?
答案 0 :(得分:83)
将repeatCount
设置为Float.infinity
。这编译并运作。
在任何情况下,HUGE_VALF
都是遗留值。
但是,Swift没有看到这些数字常量名称,这有点令人惊讶。我确实尝试在桥接标题中导入<stdlib.h>
,但它没有帮助。
但请现在看看Martin R的回答。自我发布答案以来,Apple明确表达了他们的首选答案:使用.greatestFiniteMagnitude
。它与.infinity
几乎相同但不完全相同!
答案 1 :(得分:1)
repeatCount
的CAMediaTiming
属性的当前文档声明:
将此属性设置为
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;