使用Lottie做載入動畫

onexf發表於2019-05-03

使用Lottie做載入動畫

先給出Lottie的連結:Lottie-iOS

使用Lottie做動畫的好處:
  1. 多平臺統一,包括使用和動畫效果
  2. 不用匯入圖片,只需要一個json檔案(大小隻有幾kb到幾十kb),有效減小應用安裝包體積
  3. 程式設計師幾乎不用寫動畫程式碼,也能達到炫酷的動畫效果

最主要的兩個類是AnimationViewAnimationAnimationView是執行動畫的View,Animation即所執行的動畫。例如載入動畫:

建立一個AnimationView

let animationView: AnimationView = {
    let animationView = AnimationView()
    animationView.size = CGSize(width: 170, height: 170)
    return animationView
}()
複製程式碼

建立一個Animation例項,並將它賦值給animationView的animation屬性

let animation = Animation.named("animationName")

animationView.animation = animation
複製程式碼

其中animationNamejson檔名,可以在這裡下載,也可以自己製作。

下面就可以在需要的地方執行動畫了

animationView.play(fromProgress: 0, toProgress: 1, loopMode: .loop, completion: nil)
複製程式碼

動畫可以終止或暫停

animationView.stop()


animationView.pause()

複製程式碼

最後,這裡是一個使用Lottie做的loadingView庫。可以在LottieFiles官網下載動畫的json檔案匯入專案。

使用pod安裝

pod 'LottieLoadingView'
複製程式碼

匯入

import LottieLoadingView
複製程式碼
// 設定動畫
AQLoadingView.shared.animationName = "935-loading"
// 開始載入
AQLoadingView.startLoading()
// 處理任務    
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 5) {
    // 結束載入
    AQLoadingView.endLoading()
}

複製程式碼

使用Lottie做載入動畫

先給出Lottie的連結:Lottie-iOS

使用Lottie做動畫的好處:
  1. 多平臺統一,包括使用和動畫效果
  2. 不用匯入圖片,只需要一個json檔案(大小隻有幾kb到幾十kb),有效減小應用安裝包體積
  3. 程式設計師幾乎不用寫動畫程式碼,也能達到炫酷的動畫效果

最主要的兩個類是AnimationViewAnimationAnimationView是執行動畫的View,Animation即所執行的動畫。例如載入動畫:

建立一個AnimationView

let animationView: AnimationView = {
    let animationView = AnimationView()
    animationView.size = CGSize(width: 170, height: 170)
    return animationView
}()
複製程式碼

建立一個Animation例項,並將它賦值給animationView的animation屬性

let animation = Animation.named("animationName")

animationView.animation = animation
複製程式碼

其中animationNamejson檔名,可以在這裡下載,也可以自己製作。

下面就可以在需要的地方執行動畫了

animationView.play(fromProgress: 0, toProgress: 1, loopMode: .loop, completion: nil)
複製程式碼

動畫可以終止或暫停

animationView.stop()


animationView.pause()

複製程式碼

最後,這裡是一個使用Lottie做的loadingView庫。可以在LottieFiles官網下載動畫的json檔案匯入專案。

使用pod安裝

pod 'LottieLoadingView'
複製程式碼

匯入

import LottieLoadingView
複製程式碼
// 設定動畫
AQLoadingView.shared.animationName = "935-loading"
// 開始載入
AQLoadingView.startLoading()
// 處理任務    
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 5) {
    // 結束載入
    AQLoadingView.endLoading()
}

複製程式碼

效果圖:

loading

相關文章