From fd4e6fea618366b95b7c645b0448cb3d7ee3f097 Mon Sep 17 00:00:00 2001 From: Shin Yamamoto Date: Sat, 16 May 2020 14:52:02 +0900 Subject: [PATCH] Add UISpringTimingParameters(decelerationRate:frequencyResponse:initialVelocity:) --- Framework/Sources/UIExtensions.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Framework/Sources/UIExtensions.swift b/Framework/Sources/UIExtensions.swift index 5c11d05..ff68c49 100644 --- a/Framework/Sources/UIExtensions.swift +++ b/Framework/Sources/UIExtensions.swift @@ -142,6 +142,11 @@ extension UIScrollView { } extension UISpringTimingParameters { + public convenience init(decelerationRate: CGFloat, frequencyResponse: CGFloat, initialVelocity: CGVector = .zero) { + let dampingRatio = CoreGraphics.log(decelerationRate) / (-4 * .pi * 0.001) + self.init(dampingRatio: dampingRatio, frequencyResponse: frequencyResponse, initialVelocity: initialVelocity) + } + public convenience init(dampingRatio: CGFloat, frequencyResponse: CGFloat, initialVelocity: CGVector = .zero) { let mass = 1 as CGFloat let stiffness = pow(2 * .pi / frequencyResponse, 2) * mass