2016-05-02 20 views
0

私は、画面上を転がるようにアニメートしようとしているオブジェクトを持っています。オブジェクトの位置をどのように変更して、それがすでにスピンしているかを知る方法はわかりません。これはこれまで私が持っているものです。Swiftでオブジェクトの位置を移動するにはどうすればよいですか?

@IBOutlet weak var quarterImage: UIImageView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    UIView.animateWithDuration(8.0, animations: { 
     let angle = CGFloat(-4000) 
     let rotate = CGAffineTransformMakeRotation(angle) 
     self.quarterImage.transform = CGAffineTransformMakeRotation(angle) 
    }) 

} 

助けがあれば助かります。ありがとう!

+0

ルックを追加することによって、その位置を変更することができます。また、オプションのビットマスクをとるanimateWithDurationのバージョンでは、アニメーションが永久に繰り返され、自動再生され、指定されたアニメーションカーブが可能になります。 –

答えて

1

繰り返しジャンプするスマイリー顔画像のバウンシングアニメーションを使用しています。 位置の変更について考えられるように、ここにコードがあります。 回転については、円滑な回転を得るために、異なるPI値の角度で遊ぶ必要があると思います。

UIView.animateWithDuration(0.6, delay: 0.3, options: [UIViewAnimationOptions.Autoreverse, UIViewAnimationOptions.Repeat, UIViewAnimationOptions.CurveEaseOut], animations: 
     { 
      self.m_smileyImgView?.transform.ty -= 30; 

     },completion: nil); 
0

CGAffineTransformMakeRotationはすべての少しトリッキー

最初にすることができ、それはすべてのラジアンで度

第二には、2PIを超える値は問題ではありません期待しています(0 = 2PI = 6PI = 10000PI)ここ

は360度

func rotateImage(times times:Int) { 
    if times == 0 { return } 
    UIView.setAnimationCurve(.Linear) 
    UIView.animateKeyframesWithDuration(1, delay: 0, options: .CalculationModeLinear, animations: { 
     UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 1/3, animations: { 
      self.imageView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI * 2/3)) 
     }) 
     UIView.addKeyframeWithRelativeStartTime(1/3, relativeDuration: 1/3, animations: { 
      self.imageView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI * 4/3)) 
     }) 
     UIView.addKeyframeWithRelativeStartTime(2/3, relativeDuration: 1/3, animations: { 
      self.imageView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI * 2)) 
     }) 
    }) { (_) in 
     self.rotateImage(times: times - 1) 
    } 
} 
01画像を回転させるための例示的な機能であります

あなたが回転しながらオブジェクトを移動したい場合は、アニメーションのブロック内からオブジェクトのフレームプロパティを変更するには、このキーフレーム

UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 1.0, animations: { 
       self.imageView.center.x += 50 
      }) 
関連する問題