Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Lottie Ios | 24,089 | 6,192 | 60 | 17 hours ago | 31 | August 29, 2022 | 23 | apache-2.0 | Swift | |
An iOS library to natively render After Effects vector animations | ||||||||||
Hero | 21,361 | 141 | 8 months ago | 35 | September 01, 2022 | 27 | mit | Swift | ||
Elegant transition library for iOS & tvOS | ||||||||||
Ibanimatable | 8,653 | 80 | 4 months ago | 26 | April 06, 2020 | 49 | mit | Swift | ||
Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable. | ||||||||||
React Move | 6,521 | 323 | 59 | 5 months ago | 60 | June 13, 2021 | 25 | mit | JavaScript | |
React Move | Beautiful, data-driven animations for React | ||||||||||
Popping | 5,572 | 6 years ago | 4 | mit | Objective-C | |||||
A collection of animation examples for iOS apps. | ||||||||||
React Flip Move | 3,866 | 970 | 96 | 6 months ago | 95 | October 26, 2019 | 32 | mit | JavaScript | |
Effortless animation between DOM changes (eg. list reordering) using the FLIP technique. | ||||||||||
Starwars.ios | 3,534 | 7 | 3 years ago | 2 | September 22, 2016 | 4 | mit | Swift | ||
This component implements transition animation to crumble view-controller into tiny pieces. | ||||||||||
Guillotinemenu | 2,812 | 9 | 3 years ago | 6 | October 22, 2018 | mit | Swift | |||
Our Guillotine Menu Transitioning Animation implemented in Swift reminds a bit of a notorious killing machine. | ||||||||||
Open Swiftui Animations | 2,758 | 18 days ago | 10 | unlicense | ||||||
Useful SwiftUI animations including Loading/progress, Looping, On-off, Enter, Exit, Fade, Spin and Background animations that you can directly implement in your next iOS application or project. The library also contains huge examples of spring animations such as Inertial Bounce, Shake, Twirl, Jelly, Jiggle, Rubber Band, Kitchen Sink and Wobble effects. Browse, find and download the animation that fits your needs. | ||||||||||
Android Animation Set | 2,732 | 4 months ago | 1 | apache-2.0 | Java | |||||
:books: Android 所有动画系列详尽教程。 Explain all animations in Android. |
Hero is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit's cumbersome transition APIsmaking custom transitions an easy task for developers.
Hero is similar to Keynote's Magic Move. It checks the heroID
property on all source and destination views. Every matched view pair is then automatically transitioned from its old state to its new state.
Hero can also construct animations for unmatched views. It is easy to define these animations via the heroModifiers
property. Hero will run these animations alongside the Magic Move animations. All of these animations can be interactively controlled by user gestures.
At view controller level, Hero provides several template transitions that you can set through heroModalAnimationType
, heroNavigationAnimationType
, and heroTabBarAnimationType
. These can be used as the foundation of your custom transitions. Combine with heroID
& heroModifiers
to make your own unique transitions.
By default, Hero provides dynamic duration based on the Material Design Motion Guide. Duration is automatically determined by changes to distance and sizesaving you the hassle, while providing consistent and delightful animations.
Hero doesn't make any assumptions about how the view is built or structured. It won't modify any of your views' states other than hiding them during the animation. This makes it work with Auto Layout, programmatic layout, UICollectionView (without modifying its layout object), UITableView, UINavigationController, UITabBarController, etc...
redView.hero.id = "ironMan"
blackView.hero.id = "batMan"
self.hero.isEnabled = true
redView.hero.id = "ironMan"
blackView.hero.id = "batMan"
whiteView.hero.modifiers = [.translate(y:100)]
greyView.hero.id = "skyWalker"
self.hero.isEnabled = true
greyView.hero.id = "skyWalker"
// collectionView is the parent view of all red cells
collectionView.hero.modifiers = [.cascade]
for cell in redCells {
cell.hero.modifiers = [.fade, .scale(0.5)]
}
You can do these in the storyboard too!
Add the following entry to your Podfile:
pod 'Hero'
Then run pod install
.
Don't forget to import Hero
in every file you'd like to use Hero.
Add the following entry to your Cartfile
:
github "HeroTransitions/Hero"
Then run carthage update
.
If this is your first time using Carthage in the project, you'll need to go through some additional steps as explained over at Carthage.
Add the following to your Package.swift
:
.package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.4.0")),
Next, add Hero
to your App targets dependencies like so:
.target(
name: "App",
dependencies: [
"Hero",
]
),
Then run accio update
.
To integrate using Apple's Swift package manager, add the following as a dependency to your Package.swift
:
.package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.3.0"))
and then specify "Hero"
as a dependency of the Target in which you wish to use Hero.
Here's an example PackageDescription
:
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "MyPackage",
products: [
.library(
name: "MyPackage",
targets: ["MyPackage"]),
],
dependencies: [
.package(url: "https://github.com/HeroTransitions/Hero.git", .upToNextMajor(from: "1.6.2"))
],
targets: [
.target(
name: "MyPackage",
dependencies: ["Hero"])
]
)
Checkout the WIKI PAGES (Usage Guide) for documentations.
For more up-to-date ones, please see the header-doc. (use alt+click in Xcode)
Dash compatible API docs: https://HeroTransitions.github.io/Hero/
Interactive transitions with Hero (Part 1)
self.hero.isEnabled
is set to trueMake sure that you have also enabled self.hero.isEnabled
on the navigation controller if you are doing a push/pop inside the navigation controller.
Matched views use global coordinate space while unmatched views use local coordinate space by default. Local coordinate spaced views might be covered by other global coordinate spaced views. To solve this, use the useGlobalCoordinateSpace
modifier on the views being covered. Checkout Coordinate Space Wiki page for details.
This is the default animation for navigation controller provided by Hero. To disable the push animation, set self.hero.navigationAnimationType
to .fade
or .none
on the navigation controller.
You can use the animation type .selectBy(presenting:dismissing)
to specify a different default animation for dismiss.
For example:
self.hero.modalAnimationType = .selectBy(presenting:.zoom, dismissing:.zoomOut)
We welcome any contributions. Please read the Contribution Guide.