SSSwiftUIGIFView is a custom controller designed to help load GIFs in SwiftUI. It supports loading GIFs from remote URLs, is compatible with both iOS and macOS, and implements a caching mechanism to improve loading times and reduce data usage. Additionally, it provides both a default progress view and support for custom progress views while loading the GIF.
- Support for loading local GIFs and GIFs from remote URLs
- Cache mechanism support
- Cross-platform compatibility (iOS & macOS)
- Custom and default progress view support
- iOS 14.0+
- MacOS 13.0+
- Xcode 11+
CocoaPods
SSSwiftUIGIFView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SSSwiftUIGIFView'
Swift Package Manager
When using Xcode 11 or later, you can install SSSwiftUIGIFView
by going to your Project settings > Swift Packages
and add the repository by providing the GitHub URL. Alternatively, you can go to File
> Add Package Dependencies...
dependencies: [
.package(url: "https://github.com/SimformSolutionsPvtLtd/SSSwiftUIGIFView.git", from: "2.0.0")
]
Manually
- Add
GIFCache.swift
,GIFImageViewModel.swift
,GIFPlayerView.swift
andSwiftUIGIFPlayerView.swift
to your project. - Grab yourself a cold 🍺.
Documentation - Find the full API reference for more detailed documentation.
-
Import framework
import SSSwiftUIGIFView
-
Load GIF with SwiftUIGIFPlayerView function
SwiftUIGIFPlayerView(gifName: "Gif Name")
-
Load GIF URL with SwiftUIGIFPlayerView function
SwiftUIGIFPlayerView(gifURL: gifURL) // Here the gifURL is a link to a GIF.
-
If we want to show the default progress bar while loading a GIF
// Default value for isShowProgressView is false SwiftUIGIFPlayerView(gifURL: gifURL, isShowProgressView: true)
-
If we want to show a custom progress bar while loading a GIF
SwiftUIGIFPlayerView(gifURL: gifURL) { //Custom Progress bar view }
Whether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! 💪 Check out our Contributing Guide for ideas on contributing.
Support it by joining stargazers ⭐ for this repository.
For bugs, feature feature requests, and discussion use GitHub Issues.
This project is licensed under the MIT License - see the LICENSE file for details