UIView.beginAnimations()
beginAnimations()とcommitAnimations()ではさむタイプ
メソッド前にアニメ前の状態を設定しておき、Durationの秒数かけてbeginAnimationsとcommitAnimationsの間に書かれた(AnimationCurveやDurationは設定なので別として)状態にアニメーションする。centerなどの位置や、alphaチャネルも変化できる。
print文はアニメが始まってすぐに表示される。
image.center = CGPointMake(0, 0)
UIView.beginAnimations("imageMove", context: nil)
UIView.setAnimationCurve(UIViewAnimationCurve.Linear)
UIView.setAnimationDuration(10.0)
image.center = CGPointMake(-50, 100)
UIView.commitAnimations()
print("アニメ終わり")
UIView.animationWithDuration()
クロージャを使うタイプメソッド前にアニメ前の状態を設定しておき、Durationの秒数かけて最初のクロージャに書かれた状態にアニメーションする。
centerなどの位置や、alphaチャネルも変化できる。
print文はアニメが終了後に表示される。
image.center = CGPointMake(0, 0)
UIView.animateWithDuration(10.0,
delay: 0,
options: UIViewAnimationOptions.CurveLinear,
animations: { () -> Void in
self.image.center = CGPointMake(-50, 100)
}) { (Bool) -> Void in
print("アニメ終わり")
}
UIImageViewのパラパラアニメ
各フレームのコマを配列に用意しておき、それをstartAnimating()で開始する。RepeatCountは繰り返しの回数で、0の場合無限に繰り返し。
途中で終了する際はanimeImage.stopAnimating()。
終了後は先に設定しておいたUIImage(ここでは"normalImage")になる。
前述のUIViewのアニメーションと組み合わせ、パラパラアニメしながら位置や大きさを変化などもできる。
//最初にアニメ終了後に表示するimageを設定しておく
animeImage.image = UIImage(named: "normalImage")
//アニメのコマ設定
let imageArray:[UIImage] = [
UIImage(named: "animeImage1")!,
UIImage(named: "animeImage2")!,
UIImage(named: "animeImage3")!,
UIImage(named: "animeImage4")!
]
animeImage.animationImages = imageArray
animeImage.animationDuration = 2.0
animeImage.animationRepeatCount = 1
animeImage.startAnimating()
0 件のコメント:
コメントを投稿