An open-source implementation of SwiftUI's Spring
animation.
This repository aims to provide an interface and behavior identical to SwiftUI's native Spring
implementation.
This package allows you to use Spring
to drive your animations without depending on SwiftUI.
Use Spring
to convert between different representations of spring parameters:
let spring = Spring(duration: 0.5, bounce: 0.3)
let (mass, stiffness, damping) = (spring.mass, spring.stiffness, spring.damping)
// (1.0, 157.9, 17.6)
let spring2 = Spring(mass: 1, stiffness: 100, damping: 10)
let (duration, bounce) = (spring2.duration, spring2.bounce)
// (0.63, 0.5)
You can also use it to query for a spring’s position and its other properties for a given set of inputs:
func unitPosition(time: TimeInterval) -> Double {
let spring = Spring(duration: 0.5, bounce: 0.3)
return spring.position(target: 1.0, time: time)
}
Adding Respring
to the dependencies value of your Package.swift
or the Package list in Xcode.
dependencies: [
.package(url: "https://github.com/ktiays/Respring.git", from: "1.0.0")
]
Normally you'll want to depend on the Respring
target:
.product(name: "Respring", package: "Respring")