0

15単位のように画面を上げ、減速して(すぐに停止しないでください)、戻ってくる画像が必要です。私はこれに非常に慣れておらず、何をすべきかわかりません。誰かが助けてくれることを願っています。さらに情報が必要な場合はお知らせください。ありがとう!

4

2 に答える 2

4

CABasicAnimation または UIView アニメーションの 2 つのパスを使用できます (コードの違いは大きくありません)。UIView は、よりシンプルでシンプルなアニメーションに適しています。CAAnimation は Quartz フレームワークで必要であり、より低い設定もあります。この 2 つのガイドはhttp://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorialhttp://www.raywenderlich.com/5478/uiview-animation-tutorial-practical-recipesに役立ちます

シンプルな CAAnimation の使用 (例として):

-(void)animationRotation
 {
      CABasicAnimation *anim;
      anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
      anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];  // this what you need - slow down (not an immediate stop)
     anim.duration = 0.5;
     anim.repeatCount = 1;

      anim.fromValue = [NSNumber numberWithFloat:0];
      [anim setDelegate:self];    

      anim.toValue = [NSNumber numberWithFloat:(15)];
      [myView.layer addAnimation:anim forKey:@"transform"];

      CGAffineTransform rot = CGAffineTransformMakeTranslation(15.0);
       myView.transform = rot;
 }
于 2012-08-04T21:25:20.613 に答える
1

画像を含む UIImageView を取得し、 で上向きにアニメーション化しanimateWithDuration:delay:options:animations:completion:ます。アニメーション ブロックframeでは、イメージ ビューの を変更するだけです。

上りoptionsを使用します。UIViewAnimationOptionCurveEaseOut

完了したら、今度は を使用してすぐに 2 番目のアニメーションを開始しますUIViewAnimationOptionCurveEaseIn。したがって

NSTimeInterval durationUp = 1.5;
[UIView animateWithDuration:durationUp delay:0.0 
   options:UIViewAnimationOptionCurveEaseOut 
   animations:^{
      CGRect f = imageView.frame;
      f.origin.y += 15;
      imageView.frame = f;
   }
   completion:nil];

[UIView animateWithDuration:1.5 delay:durationUp 
   options:UIViewAnimationOptionCurveEaseIn 
   animations:^{
      CGRect f = imageView.frame;
      f.origin.y -= 15;
      imageView.frame = f;
   }
   completion:nil];
于 2012-08-04T21:24:41.583 に答える