マルチで同時に再生可能、可変フレーム、省メモリといった特徴を備える強力な アニメーションGIF再生エンジン。
デモ。3つのアニメーションGIFが同時に再生される。
※githubより拝借
解説記事も出てる。
可変フレームの実現は最小単位の1コマを用意し、それをフレームの時間の分だけ並べる(継続する)ことで実現しているようだ。
例えば 15sで 5つのフレームで構成されるGIFアニメの場合
ライブラリは2つのクラスから構成される。UIImageViewのサブクラスとUIImageにあたるモデルのクラス。
CADisplayLink使ってますな。ここのところアニメーションライブラリをいくつか見てきたけど大体使ってる。定番なんですね(無知)。
使い方はこんな感じ。簡単。
FLAnimatedImage *image = [[FLAnimatedImage alloc] initWithAnimatedGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://raphaelschaad.com/static/nyan.gif"]]]; FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init]; imageView.animatedImage = image; imageView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0); [self.view addSubview:imageView];
iPad mini(非Retina)でデモを実行して Instrumentsでチェック。メモリはリアルで14M程度だが CPUは50-60%と高め。まあ3つも同時実行すればね。
- - - -
最近アプリでも初回起動時のカバーページでアニメーションを使うケースがちらほら出てきた。紹介やヘルプなどで使えそう。
MITライセンス