Add UISpringTimingParameters(decelerationRate:frequencyResponse:initialVelocity:)

This commit is contained in:
Shin Yamamoto
2020-07-11 09:48:25 +09:00
parent 54570ac7c6
commit fd4e6fea61
+5
View File
@@ -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