Я ознакомился с руководством по созданию интерактивной анимации центра управления iOS с помощью UIViewPropertyAnimator:
http://www.swiftkickmobile.com/building-better-app-animations-swift-uiviewpropertyanimator/
при перемещении вверх или вниз по нижнему меню, после отпускания пальца, яхотите добавить скорость панорамирования к UIViewPropertyAnimator
и продолжить анимацию:
popupViewPanned(recognizer:) {
switch recognizer.state {
.
.
.
// after finger released
case .end:
// continue all animations using pan velocity with spring timing
let normalizedPanVelocity: // how to normalize pan velocity
runningAnimators.forEach { $0.continueAnimation(withTimingParameters: spring(for: velocity()), durationFactor: 0) }
}
}
func velocity() -> CGVector {
let pan = panRecognizer
let progress = runningAnimators[0].fractionComplete
let fraction = popupOffset*(1 - progress)
return CGVector(with: pan.velocity(in: view), fraction: fraction)
}
func spring(for velocity: CGVector = .zero) -> UITimingCurveProvider {
return UISpringTimingParameters(dampingRatio: 0.9, initialVelocity: velocity)//UISpringTimingParameters(mass: 2.5, stiffness: 80, damping: 25, initialVelocity: velocity)
}
проблема заключается в том, что когда я быстро пролистываю меню вверх или вниз и отпускаю более тонкое изображение, кажется, анимация врезается в стену (медленно медленно),затем продолжайте отдыхать
так как я могу решить проблему?Я пробовал весь день, но не смог это исправить