SwiftGif
A small UIImage
extension with gif support.
Usage
// An animated UIImage
let jeremyGif = UIImage.gif(name: "jeremy")
// A UIImageView with async loading
let imageView = UIImageView()
imageView.loadGif(name: "jeremy")
// A UIImageView with async loading from asset catalog(from iOS9)
let imageView = UIImageView()
imageView.loadGif(asset: "jeremy")
Installation
CocoaPods
Install CocoaPods with the following command:
gem install cocoapods
Integrate SwiftGif into your Xcode project by creating a Podfile
:
platform :ios, '9.0'
use_frameworks!
target '<Your Target Name>' do
pod 'SwiftGifOrigin', '~> 1.7.0'
end
Run pod install
to build your dependencies.
Carthage
Install Carthage with Homebrew using the following command:
brew update
brew install carthage
Add the following line to your Cartfile
to add SwiftGif:
github "bahlo/SwiftGif" ~> 1.7.0
Run carthage update
to build the framework and drag the built
SwiftGif.framework
into your Xcode project.
How does it work?
Easy, it does the following:
- Find out the duration of every frame
- Find the greatest common divisor
- Add frames accordingly to the greatest common divisor to an array
- Create an animated UIImage with the frames
Testing
$ xcodebuild \
-project SwiftGif.xcodeproj \
-scheme SwiftGif \
-sdk iphonesimulator \
-destination "platform=iOS Simulator,name=iPhone 8" \
build test \
CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY=""
Inspiration
This project is heavily inspired by uiimage-from-animated-gif.
Kudos to @mayoff.
License
This repository is licensed under the MIT license, more under LICENSE.