0

私はアニメーション化されているUISLiderを持っています-91.0秒の期間にわたって画面を横切って行きます。アニメーションスポットを停止できるようにしたいと思います。

コード:

 [UIView animateWithDuration:91.0
        delay:0.0
        options:UIViewAnimationOptionRepeat|
                    UIViewAnimationOptionAllowUserInteraction|
            UIViewAnimationOptionBeginFromCurrentState
        animations:^{[UIView setAnimationDuration:91.0];
                 [myUISlider setValue:91.0];}
            completion:nil];

    [UIView commitAnimations];
  • アニメーションを停止する1つの方法は、新しい値を設定することです。ただし、アニメーション中にスライダーの現在の値/位置を読み取ることができません。mySlider.valueにアクセスすると、ターゲット値(アニメーションが終了する場所、つまり91)を取得します。

掘り下げてみると、アクションメソッドを起動し、デフォルトでYESに設定されている連続フラグに出くわしました。開発者リファレンスから:

「...YESの場合、スライダーは更新イベントを関連するターゲットのアクションメソッドに継続的に送信します...」

ただし、ここでも値は91.0です。

お時間をいただきありがとうございます。

あなたの、

〜nir。

4

1 に答える 1

0

UISliderのレイヤーにそのレイヤーを要求する-presentationLayerと、レイヤーのそのコピーにほぼリアルタイムのアニメーションプロパティを問い合わせることができます。CALayerのドキュメントから:

アクティブなアニメーションが適用された、現在のトランザクションの開始時のすべてのプロパティを含むレイヤーのコピーを返します。

于 2010-10-04T16:41:52.470 に答える