【Swift/UIKit】UIView.animateメソッドの使い方!アニメーションの実装

この記事からわかること

  • Swift/UIKitUIViewアニメーションさせる方法
  • animateメソッド使い方違い
  • 位置サイズ変化をさせる
  • AnimationOptionsの使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

UIKitを使用したiOSアプリ開発でビューにアニメーションを実装する方法をまとめて行きます。

アニメーションを実装する方法

アニメーションを実装する方法はいくつか用意されています。それぞれの役割とは以下の通りになります。

UIView.animateメソッドの使い方

UIKitのビューのサイズや位置などを変化させた際にアニメーションを実装するにはUIView.animateメソッドを使用します。引数durationにはTimeInterval型(Doubleのエイリアス)でアニメーションの変化にかかる時間を指定します。引数animations内でViewのプロパティを変化させることで対象のViewが滑らかに変化するようになります。

公式リファレンス:UIView.animateメソッド

class func animate(
    withDuration duration: TimeInterval,
    animations: @escaping () -> Void
)

例えばViewの位置をずらす場合は以下のように実装します。

let square = UIView(frame: CGRect(x: 0, y:0, width: 150 , height: 150))
square.backgroundColor = .orange
square.center = self.view.center
UIView.animate(withDuration: 1.0) {
    square.center.y -= 100.0
}
self.view.addSubview(square)
【Swift/UIKit】UIView.animateメソッドの使い方!アニメーションの実装

アニメーションが適応されるプロパティの種類

公式リファレンス:Animate views

アニメーションが適応されるのはUIViewのプロパティの中では以下の6種類のようです。

これらのプロパティをanimations内で変化させることでアニメーションが実行されます。

let square = UIView(frame: CGRect(x: 0, y:0, width: 150 , height: 150))
square.backgroundColor = .orange
square.center = self.view.center
UIView.animate(withDuration: 1.0) {
    // サイズ変更
    square.frame.size = CGSize(width: 200, height: 200)
    // 位置変更
    square.center.y -= 100.0
    // 回転
    let angle: CGFloat = 45 * .pi / 180
    square.transform = CGAffineTransform(rotationAngle: angle)
    // 透明度変更
    square.layer.opacity = 0.3
    // 背景色
    square.backgroundColor = .green
}
self.view.addSubview(square)
【Swift/UIKit】UIView.animateメソッドの使い方!アニメーションの実装

CALayerのプロパティも変化する

CALayerクラスのプロパティでもアニメーションを実装することができました。

UIView.animate(withDuration: 2.0) {
    square.layer.cornerRadius = 30
    square.layer.opacity = 0
}
【Swift/UIKit】UIView.animateメソッドの使い方!アニメーションの実装

引数違いのanimateメソッド

animate(withDuration:delay:options:animations:completion:)

delay:アニメーション開始前の待機時間

optionsAnimationOptions型でアニメーションオプション設定

UIView.animate(withDuration: 1.0, delay: 3.0, options: .repeat) {
    square.center.y -= 100.0
}

例えばoptions.repeatを渡すことでアニメーションを繰り返し実行することができます。

【Swift/UIKit】UIView.animateメソッドの使い方!アニメーションの実装

AnimationOptions型の種類

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index