Essence for Tech

iOSアプリエンジニア、Gaku NISHIMOTOの技術ブログです。

【Swift】SnapKit(AutoLayout)でカンタンアニメーション

結果

こんな感じのアニメーションがカンタンに実装できる。

f:id:gaku2n:20180314214850g:plain

環境

  • Swift 4
  • Xcode 9.2 (9C40b)
  • SnapKit(AutoLayoutをコードで簡単に設定できるライブラリ)を使用

手順

1. 始発点のAutoLayoutを設定し、レイアウトする

// Viewの設定
let view = UIView()
view.backgroundColor = UIColor.orange
viewController.view.addSubview(view)

// AutoLayoutの設定
view.snp.makeConstraints {
    $0.size.equalTo(40)
    $0.top.left.equalToSuperview()
}

// レイアウトする
view.superview?.layoutIfNeeded()

2. UIView.animateメソッドを使い、animations引数で終点のAutoLayoutを設定し、レイアウトする

// アニメーションを設定する
UIView.animate(withDuration: 3.0) {
    // 終点のAutoLayoutを設定
    view.snp.remakeConstraints {
        $0.size.equalTo(80)
        $0.right.bottom.equalToSuperview()
    }
    // レイアウトする
    view.superview?.layoutIfNeeded()
}

感想

拡大縮小や移動程度のアニメーションであれば、これでほとんど手間なく実装できる。

カクカクしてるかスムーズに動くかで全然アプリの印象が違うので、アニメーションはできる範囲で積極的にいれていきたい。