pub struct SpringParams {
pub stiffness: f32,
pub damping_ratio: f32,
}Expand description
Damped-spring parameters for a SettleAnimation. advance_spring_displacement
already generalizes over damping ratio, so the two settle use cases in
this crate share one scheduler and differ only in these two numbers.
Fields§
§stiffness: f32§damping_ratio: f32Implementations§
Source§impl SpringParams
impl SpringParams
Sourcepub const SETTLE_POLICY: Self
pub const SETTLE_POLICY: Self
Settle-policy remapping (e.g. the liquid nav bar’s title-collapse snap): critically damped, settling in ≈0.35s, the iOS large-title snap feel.
Sourcepub const OVERSCROLL_BOUNCE: Self
pub const OVERSCROLL_BOUNCE: Self
Overscroll bounce-back: the spring a scroll container’s rubber-banded
offset relaxes through once the finger releases (or a fling’s own
velocity decays) while still past the edge. Fit to a UIScrollView
bounce-back trace recorded on the iOS 26.5 Simulator (drag past the
top edge, hold to zero velocity, release: -177pt to rest in 667ms) —
see ios_fling_measurement.rs. Overdamped rather than critical: a
critically-damped ζ=1 spring at the same stiffness overshoots the
measured curve’s shape by 15-20x; this (stiffness, damping_ratio) pair
was fit by least squares against the recorded trace, residual ≤2.9pt
(mean 0.79pt) against a 177pt swing.
Trait Implementations§
Source§impl Clone for SpringParams
impl Clone for SpringParams
impl Copy for SpringParams
Auto Trait Implementations§
impl Freeze for SpringParams
impl RefUnwindSafe for SpringParams
impl Send for SpringParams
impl Sync for SpringParams
impl Unpin for SpringParams
impl UnsafeUnpin for SpringParams
impl UnwindSafe for SpringParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more