ドキュメントによると、CABasicAnimationを永久に繰り返す方法は、repeatCount
をHUGE_VALF
に設定することです。
ただし、Swiftでは、HUGE_VALF
によりコンパイルエラーが発生します。 Swiftは標準ライブラリ(またはこの定数が存在する場所)について知らないようです。
私は今何をしますか?
repeatCount
を_Float.infinity
_に設定します。これはコンパイルして動作します。
いずれにせよ、_HUGE_VALF
_はどの場合でもレガシー値でした。
それでも、これらの数値定数名がSwiftに表示されないことは少し驚きです。ブリッジングヘッダーに_<stdlib.h>
_をインポートしようとしましたが、役に立ちませんでした。
しかし、今はマーティンRの答えをご覧ください。私が答えを投稿したときから、Appleは優先答えを明示的に述べています:_.greatestFiniteMagnitude
_を使用してください。_.infinity
_とほぼ同じですが、完全ではありません!
repeatCount
プロパティの CAMediaTiming
プロパティの現在のドキュメントには、
このプロパティを
greatestFiniteMagnitude
に設定すると、アニメーションが永久に繰り返されます。
そして、それは問題なくコンパイルされます:
let ba = CABasicAnimation()
ba.repeatCount = .greatestFiniteMagnitude
HUGE_VALF
は、Swiftにインポートされません。これは、<math.h>
:
# define HUGE_VALF __builtin_huge_valf()
「巨大」値を使用します。 build_in読み取り専用変数です。