最近項(xiàng)目用動畫的地方很多,自己又懶的去寫暖呕,找到一個(gè)比較好的三方庫進(jìn)行分享。
首先cocoapods進(jìn)行安裝
swift版本就使用最新的就可以
pod 'lottie-ios'
OC版本需要添加版本號
pod 'lottie-ios' ,'~> 2.5.3'
Lottie 動畫文件
在使用Lottie之前,你需要一個(gè)以JSON文件形式輸出的動畫數(shù)據(jù)庫。如果你已經(jīng)有了一個(gè)After Effects動畫震嫉,用Bodymovin插件來創(chuàng)建JSON文件。
如果你不會使用After Effects呢牡属?你可以雇一位設(shè)計(jì)師為你設(shè)計(jì)動畫票堵,或者你學(xué)會用After Effects。
還有一個(gè)就是去這里自己下載逮栅,這里有許多設(shè)計(jì)師設(shè)計(jì)的悴势,找相同的進(jìn)行更改:Lottie Files
以下是我的布局,一個(gè)UIView措伐,兩個(gè)Button:
如何使用:
// 包含頭文件
@import Lottie;
// 設(shè)置動畫View
@property (strong,nonatomic) LOTAnimationView *animation;
// 關(guān)聯(lián)UIView
@property (weak, nonatomic) IBOutlet UIView *animalView;
// 初始化動畫
-(void)initAnimal
{
self.animation = [LOTAnimationView animationNamed:@"servishero-loading"];
self.animation.frame = CGRectMake(0, 0, self.animalView.frame.size.width, self.animalView.frame.size.height);
[self.animalView addSubview:self.animation];
}
// 按鈕點(diǎn)擊開始動畫
- (IBAction)startAnimal:(UIButton *)sender {
NSLog(@"開始動畫");
self.animation.loopAnimation = YES; // 讓動畫一直執(zhí)行
[self.animation playWithCompletion:^(BOOL animationFinished) {
// 動畫停止后要做的事情
NSLog(@"動畫停止");
}];
}
// 按鈕點(diǎn)擊暫停動畫
- (IBAction)stopAnimal:(UIButton *)sender {
NSLog(@"停止動畫");
[self.animation stop];
}
紅色框里就是在網(wǎng)站上下載的其他設(shè)計(jì)師的文件特纤,需要下載別的都可以進(jìn)行替換
因?yàn)镺C版的三方庫已經(jīng)不再更新了,好多動畫展示都有些問題侥加,所以使用了Lottie的Swift版本捧存,項(xiàng)目用OC調(diào)用Swift三方庫
pod 'lottie-ios' ,'~> 4.2.0'
這里是LottieDemo,需要自行下載官硝。
這里是OC調(diào)用Swift矗蕊,需要自行下載。
有問題請指出~