SVGAPlayer
介紹
SVGAPlayer
是一個(gè)輕量的動(dòng)畫渲染庫厅须。你可以使用工具從 Adobe Animate CC
或者 Adobe After Effects
中導(dǎo)出動(dòng)畫文件好唯,然后使用 SVGAPlayer
在移動(dòng)設(shè)備上渲染并播放截亦。
SVGAPlayer-iOS
使用原生 CoreAnimation 庫渲染動(dòng)畫糊治,為你提供高性能碌燕、低開銷的動(dòng)畫體驗(yàn)恒水。
如果你想要了解更多細(xì)節(jié),請(qǐng)?jiān)L問官方網(wǎng)站顷蟆。
用法
我們?cè)谶@里介紹 SVGAPlayer-iOS
的用法诫隅。想要知道如何導(dǎo)出動(dòng)畫,點(diǎn)擊這里慕的。
使用 CocoaPods 安裝依賴
添加依賴 'SVGAPlayer', '~> 2.3' 到 Podfile 文件中:
target 'MyApp' do
pod 'SVGAPlayer', '~> 2.3'
end
然后在終端執(zhí)行 pod install
阎肝。
放置 svga 文件
SVGAPlayer 可以從應(yīng)用包挤渔,或者遠(yuǎn)端服務(wù)器上加載動(dòng)畫文件肮街。
代碼
創(chuàng)建一個(gè) SVGAPlayer
實(shí)例
SVGAPlayer *player = [[SVGAPlayer alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[self.view addSubview:player]; // Add subview by yourself.
創(chuàng)建一個(gè) SVGAParser
實(shí)例,使用以下方法從應(yīng)用包中加載動(dòng)畫判导。
SVGAParser *parser = [[SVGAParser alloc] init];
[parser parseWithNamed:@"posche" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
} failureBlock:nil];
創(chuàng)建一個(gè) SVGAParser
實(shí)例嫉父,使用以下方法從遠(yuǎn)端服務(wù)器中加載動(dòng)畫。
SVGAParser *parser = [[SVGAParser alloc] init];
[parser parseWithURL:[NSURL URLWithString:@"https://github.com/yyued/SVGA-Samples/blob/master/posche.svga?raw=true"] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
} failureBlock:nil];
將 videoItem 賦值給 SVGAPlayer
眼刃,然后播放動(dòng)畫绕辖。
[parser parseWithURL:[NSURL URLWithString:@"https://github.com/yyued/SVGA-Samples/blob/master/posche.svga?raw=true"] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
if (videoItem != nil) {
player.videoItem = videoItem;
[player startAnimation];
}
} failureBlock:nil];
緩存
SVGAParser
使用 NSURLSession
請(qǐng)求遠(yuǎn)端數(shù)據(jù),你需要通過以下方式緩存動(dòng)畫文件擂红。
HTTP 結(jié)果頭部信息
如果服務(wù)器返回的頭部信息包含 cache-control / etag / expired 這些鍵值仪际,這個(gè)請(qǐng)求會(huì)被合理地緩存到本地。
自行緩存 NSData
如果你沒有辦法控制服務(wù)器返回的頭部信息昵骤,你可以自行獲取對(duì)應(yīng)的 svga 文件 NSData
數(shù)據(jù)树碱,然后使用 SVGAParser
解析這些數(shù)據(jù)。
功能示例
APIs
請(qǐng)參閱此處 https://github.com/yyued/SVGAPlayer-iOS/wiki/APIs
CHANGELOG
請(qǐng)參閱此處 CHANGELOG