UIView анимация: моделирование скорости
Я пытаюсь использовать UIView
анимация для простого перемещения вида на экран:
[UIView animateWithDuration:.10 delay:0 options: nil animations:^
{
self.menusView.frame = endingMenuViewFrame;;
}
completion:^(BOOL finished)
{
}];
Я хочу добавить анимацию, чтобы UIView плавал немного, когда достигнет вершины, прежде чем упадет, то есть, если кто-то прыгает в воздухе - когда он прыгает в первый раз, он быстро взлетает, но затем гравитация постепенно замедляет его вниз, когда они достигают вершины своего прыжка, и в конечном итоге это толкает их обратно на землю. Кто-нибудь знает, как этого добиться?
1 ответ
Попробуйте с этим кодом. Это заставит ваш вид отскочить три раза с каждым раз, когда ваш рост уменьшается вдвое. Вы можете добавить больше отказов.
CGFloat offset = 200.0;
CGRect originalFrame = self.menusView.frame;
[UIView animateWithDuration:1.0 animations:^{
CGRect frame = self.runnerAlertView.frame;
frame.origin.y = frame.origin.y - offset;
self.menusView.frame = frame;
} completion:^(BOOL finished){
[UIView animateWithDuration:1.0 animations:^{
self.menusView.frame = originalFrame;
} completion:^(BOOL finished) {
[UIView animateWithDuration:1.0 animations:^{
CGRect frame = self.menusView.frame;
frame.origin.y = frame.origin.y - 0.5 *offset;
self.menusView.frame = frame;
} completion:^(BOOL finished){
[UIView animateWithDuration:1.0 animations:^{
self.menusView.frame = originalFrame;
} completion:^(BOOL finished) {
[UIView animateWithDuration:1.0 animations:^{
CGRect frame = self.runnerAlertView.frame;
frame.origin.y = frame.origin.y - 0.25 * offset;
self.menusView.frame = frame;
} completion:^(BOOL finished){
[UIView animateWithDuration:1.0 animations:^{
self.menusView.frame = originalFrame;
}];
}];
}];
}];
}];
}];