Отслеживаете прогресс UIPropertyAnimator iOS Swift? - PullRequest
0 голосов
/ 31 августа 2018

Я следую этому руководству, чтобы узнать об UIPropertyAnimators:

https://www.youtube.com/watch?v=Yrb78U3V16g

Он анимирует UIView, расширяющийся до полноэкранного / уменьшающего до миниатюры с помощью UIPropertyAnimator с помощью распознавателя жестов панорамирования.

Концепция перевода представления, основанная на переводе для жеста, имеет смысл, который он делает с этим:

let translation = recognizer.translation(in: self.view.superview)

Но при использовании перевода жеста для анимации вида он использует центр вида:

let yTranslation = self.view.center.y + translation.y
progress = (yTranslation / self.view.center.y) - 1 // For going to fullscreen
progress = 1 - (yTranslation / self.view.center.y) // For going to thumbnail
animator.fractionComplete = progress

В видео он говорит, что использует центр экрана, чтобы анимация выглядела «более естественной», но я не понимаю математики, стоящей за ней. Я что-то упускаю из виду?

Может ли кто-нибудь объяснить математику, стоящую за добавлением view.center.y к переводу y, а затем делением на него и как это обеспечивает более «естественное» чувство?

...