1

以下のように UIView animateWithDuration を使用して、ラベルをポイント A からポイント B に移動しようとしています

    [UIView animateWithDuration:3 delay:0 options:UIViewAnimationTransitionNone animations:^(void){
        label.alpha = 1;
        label.center = CGPointMake(label.center.x , label.center.y +740);

        }completion:^(BOOL Finished){ 
         label.alpha = 0;
        label.center = CGPointMake(label.center.x , label.center.y - 740);]

ラベルが 740 に達しようとすると、減速します。速度を落とす代わりに、点 B まで等速で移動することは可能ですか?

4

3 に答える 3

4

これを使って:

[UIView animateWithDuration:3 delay:0 options:UIViewAnimationTransitionNone | UIViewAnimationOptionCurveLinear animations:^(void){ 
...
于 2012-10-14T06:28:11.173 に答える
1

UIViewAnimationCurveLinearの代わりにオプションに含めますUIViewAnimationTransitionNoneUIViewAnimationTransitionNoneこの種のアニメーション用ではありません。これは、ビュー コントローラーの遷移用です。

于 2012-10-14T06:27:48.693 に答える
1

アニメーション オプションを変更UIViewAnimationOptionCurveLinearして、アニメーションですべての加速と減速を削除するかUIViewAnimationOptionCurveEaseIn、最後に減速せずにスロー スタートを維持するようにします。

あなたが見ているものは予想されており、文書化されています(以下を参照)。デフォルトでは、アニメーションはゆっくりと始まり、ゆっくりと終わります:

討論

このメソッドは、 を使用して、指定されたアニメーションをすぐに実行しますUIViewAnimationOptionCurveEaseInOut

于 2012-10-14T06:26:27.943 に答える