4

カスタムインジケーターを作成する別の方法を学んでいます。以下は、タスクを達成するためにCABasicAnimationを使用したチュートリアルの部分的なコードです。

-(void)spin
{
    CABasicAnimation *spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    spinAnimation.toValue           = [NSNumber numberWithFloat:2*M_PI];
    spinAnimation.duration          = self.animationDuration;
    spinAnimation.delegate          = self;
    [self.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
}

行番号2のtoValueとは何ですか、またそれは何のために使用されますか。使ってみたところ

spinAnimation.byValue = [NSNumber numberWithFloat:2 * M_PI];

私はこれらの補間値のアイデアを理解していません。インターネットで検索していましたが、それでも全体像を把握することはできません。それについて何かアイデアがあれば助けてください。すべてのコメントをいただければ幸いです。

4

2 に答える 2

4

CABasicAnimationsは、頭を包み込むのが少し難しい場合がありますが、アニメーションに関連付けられているプロパティは、達成しようとしていることを視覚化できれば、それほど難しくはありません。たとえば、レイヤーを表す赤い正方形があり、それを360度回転させたい場合(そこで行っているように)、アニメーションオブジェクトを初期化し、アニメーション化する対象と場所を指定する必要があります。アニメーションをやりたいです。

提供したアニメーションは、CALayerの内部マトリックスを変更して、指定された期間にわたって2 * M_PI現在の位置(指定していないため)から指定された値(この場合は、、または360°)に回転します。fromValue指定された値は、指定された期間にわたって、指定された期間、指定された値でアニメーションを補間(または移動)することをアニメーションに通知します(たとえば、指定することでアニメーションを45°の「ブロック」にチャンクできます)のbyValue@(M_PI/2)。デフォルトのbyValueは、アニメーションがスムーズで連続するように、アニメーションの継続時間toValueとの差を分割したものです。fromValue

ここに画像の説明を入力してください

したがって、アニメーションは、特定の量または値を一定期間補間することにより、レイヤーの初期回転からレイヤーの新しい回転移行するものと考えることができます。

于 2013-02-16T21:46:01.063 に答える
-2

「byValue」の意味と元の値を理解することができます。

于 2018-07-05T07:32:23.570 に答える