使用Lottie做加載動畫
先給出Lottie的鏈接:Lottie-iOS
使用Lottie做動畫的好處:
- 多平臺統(tǒng)一样屠,包括使用和動畫效果
- 不用導(dǎo)入圖片穿撮,只需要一個json文件(大小只有幾kb到幾十kb)搓劫,有效減小應(yīng)用安裝包體積
- 程序員幾乎不用寫動畫代碼,也能達到炫酷的動畫效果
最主要的兩個類是AnimationView
和Animation
混巧,AnimationView
是執(zhí)行動畫的View枪向,Animation
即所執(zhí)行的動畫。例如加載動畫:
創(chuàng)建一個AnimationView
let animationView: AnimationView = {
let animationView = AnimationView()
animationView.size = CGSize(width: 170, height: 170)
return animationView
}()
創(chuàng)建一個Animation
實例咧党,并將它賦值給animationView
的animation屬性
let animation = Animation.named("animationName")
animationView.animation = animation
其中animationName
是json
文件名秘蛔,可以在這里下載,也可以自己制作傍衡。
下面就可以在需要的地方執(zhí)行動畫了
animationView.play(fromProgress: 0, toProgress: 1, loopMode: .loop, completion: nil)
動畫可以終止或暫停
animationView.stop()
animationView.pause()
最后深员,這里是一個使用Lottie做的loadingView庫⊥芄。可以在LottieFiles官網(wǎng)下載動畫的json文件導(dǎo)入項目倦畅。
使用pod安裝
pod 'LottieLoadingView'
導(dǎo)入
import LottieLoadingView
// 設(shè)置動畫
AQLoadingView.shared.animationName = "935-loading"
// 開始加載
AQLoadingView.startLoading()
// 處理任務(wù)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 5) {
// 結(jié)束加載
AQLoadingView.endLoading()
}
使用Lottie做加載動畫
先給出Lottie的鏈接:Lottie-iOS
使用Lottie做動畫的好處:
- 多平臺統(tǒng)一,包括使用和動畫效果
- 不用導(dǎo)入圖片绣的,只需要一個json文件(大小只有幾kb到幾十kb)叠赐,有效減小應(yīng)用安裝包體積
- 程序員幾乎不用寫動畫代碼,也能達到炫酷的動畫效果
最主要的兩個類是AnimationView
和Animation
屡江,AnimationView
是執(zhí)行動畫的View芭概,Animation
即所執(zhí)行的動畫。例如加載動畫:
創(chuàng)建一個AnimationView
let animationView: AnimationView = {
let animationView = AnimationView()
animationView.size = CGSize(width: 170, height: 170)
return animationView
}()
創(chuàng)建一個Animation
實例惩嘉,并將它賦值給animationView
的animation屬性
let animation = Animation.named("animationName")
animationView.animation = animation
其中animationName
是json
文件名罢洲,可以在這里下載,也可以自己制作文黎。
下面就可以在需要的地方執(zhí)行動畫了
animationView.play(fromProgress: 0, toProgress: 1, loopMode: .loop, completion: nil)
動畫可以終止或暫停
animationView.stop()
animationView.pause()
最后惹苗,這里是一個使用Lottie做的loadingView庫∷是停可以在LottieFiles官網(wǎng)下載動畫的json文件導(dǎo)入項目桩蓉。
使用pod安裝
pod 'LottieLoadingView'
導(dǎo)入
import LottieLoadingView
// 設(shè)置動畫
AQLoadingView.shared.animationName = "935-loading"
// 開始加載
AQLoadingView.startLoading()
// 處理任務(wù)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 5) {
// 結(jié)束加載
AQLoadingView.endLoading()
}
效果圖:
loading