⚠️ This repository is not longer maintained. Please use the latest dotlottie-ios here.
dotLottie is an open-source file format that aggregates one or more Lottie files and their associated resources into a single file. They are ZIP archives compressed with the Deflate compression method and carry the file extension of ".lottie".
View documentation, FAQ, help, examples, and more at dotlottie.io
To run the example project, clone the repo, and run pod install
from the Example directory first.
- Swift 5.0
- iOS 9
- macOS 10.12
- tvOS 10.0
dotLottie-ios is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'dotLottie'
.package(url: "https://github.com/dotlottie/dotlottie-ios.git", from: "0.1.7")
import Lottie
import dotLottie
DotLottie.isLogEnabled = true
let animationView = AnimationView()
DotLottie.load(name: "animation") { (animation) in
if let animation = animation {
self.animationView.animation = animation
self.animationView.bounds = CGRect(x: 0, y: 0, width: 300, height: 300)
self.animationView.center = self.view.center
self.view.addSubview(self.animationView)
self.animationView.play()
}else{
print("Error loading .lottie")
}
}
let animationView = AnimationView()
DotLottie.load(from: URL(string:"https://dotlottie.io/sample_files/animation.lottie")!){ (animation) in
if let animation = animation {
self.animationView.animation = animation
self.animationView.bounds = CGRect(x: 0, y: 0, width: 300, height: 300)
self.animationView.center = self.view.center
self.view.addSubview(self.animationView)
self.animationView.play()
}else{
print("Error loading .lottie")
}
}
import SwiftUI
import dotLottie
struct LocalAnimationView: View {
@State var name: String
@State var play: Int = 1
var body: some View {
DotLottieView(name: name, play: self.$play, onCompleted: { completed in
// handle completion
})
.frame(height:200)
}
}
import SwiftUI
import dotLottie
struct RemoteAnimationView: View {
@State var url: URL
@State var play: Int = 1
var body: some View {
DotLottieView(url: url, play: self.$play, onCompleted: { completed in
// handle completion
})
.frame(height:200)
}
}
Evandro Harrison Hoffmann | evandro.hoffmann@gmail.com
dotLottie-ios is available under the MIT license. See the LICENSE file for more info.