何枚か画像を用意してそれを切り替えることで、パラパラ漫画のようにアニメーションを表示することができる UIImageView の拡張クラス AnimationImageView を作りましたので、それの紹介記事になります。
ソースコードは下記 GitHub に上がっています。
https://github.com/bravesoft-lab/AnimationImageView
AnimationImageView.swift をダウンロードして、任意の swift プロジェクトに組み込むだけで使えるようになります。
AnimationImageView のインスタンスを画面に配置し、下記のようにアニメーションの設定を行います。
let imageList = [image1, image2, image3, image4]; let animationTimeList: Array<TimeInterval> = [0.2, 0.3, 0.4, 0.5] var animationFrameList = Array<AnimationFrame>() for i in 0..<imageList.count { animationFrameList.append(AnimationFrame(image: imageList[i], time: animationTimeList[i])) } // アニメーションのフレームを設定 animationImageView.animationFrameList = animationFrameList // ループ回数(0なら無限) animationImageView.numberOfLoopTimes = 0 // アニメーション終了後に初期画像に戻すかどうか animationImageView.backToFirstImage = false
あとは、下記コードでアニメーションを開始することができます。
animationImageView.startAnimation()
アニメーション完了時に何か処理を行いたいときは、デリゲートメソッドを実装してください。
func animationImageView(didFinishedAnimation animationImageView: AnimationImageView) { // ここにアニメーション完了時の処理 }
ちなみに ボケて でも評価時の星のアニメーションに使ってます。
動画プレーヤー
00:00
00:00
画像切り替えで表現できるアニメーションであれば、このクラスでだいたいなんとかなると思います。
何かバグなど見つかった場合は、ご一報いただければ幸いです。
投稿者プロフィール
最新の投稿
- サービス・製品2022年6月27日【iOS】ARケチャマヨバトルをアップデートしたときにやったこと
- 技術・開発情報2021年6月22日UIKit(Storyboard)で時間が止まってる人向けのiOS開発リハビリメニュー
- 技術・開発情報2020年10月8日AWSのSESを利用して手動でメールを送信する
- 技術・開発情報2020年9月8日SwiftUIのすすめ – 2. リスト表示 –