iOS
UIView
Swift
swift4

UIViewを燃やしてみた(swift)

はじめに

noppefoxwolf/KitsunebiこれをみてUIViewを燃やせるんじゃないかと思いつくってみました。

GitHub

つくったものはここ
AMBurnAnimation

見た目

burn2

機能

  • 指定のUIViewを燃やすアニメーションが設定できる(下から上のみ)
  • アニメーション時間が設定できる
  • アニメーション終了時の処理が設定できる

使い方

  1. プロジェクトにextension追加

    gitからファイルをダウンロードしてプロジェクトにUIView+BurnAnimationフォルダのファイルを追加する

  2. 指定のViewで下記のアニメーション設定メソッドを呼ぶ

targetView.burnAnimation(duration: 3.0,
                         completion: nil)

上記の例では3秒かけてtargetViewを燃やすアニメーションを設定している。

仕組み

このクラスの仕組みについて少し説明しておきます。
下記のような仕組みでアニメーションを設定しています。

  1. 対象のViewのキャプチャを作成する
  2. CAEmitterLayerを使って炎を出す
  3. 対象のViewのisHiddenをtrueにして非表示にする
  4. キャプチャしたViewとCAEmitterLayerにアニメーションを設定する
  5. アニメーション終了時に対象のViewのisHiddenをfalseにして表示する

炎の表示はUIKit上でパーティクルエフェクトを表示する - Over&Out その後を参考にさせていただきました。

さいごに

炎の表示は画像の作成を頑張れば(煙を出すとか炎の形を変えるとか)もっとカッコ良くなるような気がします。

特に使い道は考えていませんが、現実では燃やせない書類を燃やしてみるとかしてスカッとするとかどっかで使える気がしなくもないです・・・(ビューアアプリでファイル削除時に使うとか?)
burn

私はほぼObjective-Cしか使ったことがないペーペーのプログラマーなので記事内容やgithubのコードにおかしなところがあればご指摘いただければ幸いです。