* Improve status bar style update animation when dismissing media viewer. * Use gesture velocity in the media dismissal spring-based animation.
28 lines
757 B
Swift
28 lines
757 B
Swift
//
|
|
// Copyright 2022 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import UIKit
|
|
|
|
public extension UIViewPropertyAnimator {
|
|
|
|
convenience init (
|
|
duration: TimeInterval,
|
|
springDamping: CGFloat,
|
|
springResponse: CGFloat,
|
|
initialVelocity velocity: CGVector = .zero
|
|
) {
|
|
let stiffness = pow(2 * .pi / springResponse, 2)
|
|
let damping = 4 * .pi * springDamping / springResponse
|
|
let timingParameters = UISpringTimingParameters(
|
|
mass: 1,
|
|
stiffness: stiffness,
|
|
damping: damping,
|
|
initialVelocity: velocity
|
|
)
|
|
self.init(duration: duration, timingParameters: timingParameters)
|
|
isUserInteractionEnabled = true
|
|
}
|
|
}
|