Как получить изменения для просмотра положения при анимации кадра? - PullRequest
0 голосов
/ 05 ноября 2011

Мне нужно постоянно обновлять вид в зависимости от позиции другого вида, когда он перемещается по экрану. Я пытался использовать KVO на кадре, но, кажется, срабатывает только в начале анимации. Есть ли рекомендуемый способ сделать это?

Ответы [ 3 ]

0 голосов
/ 05 ноября 2011

Я бы добавил повторяющийся таймер и сделал бы что-то вроде:

[self updateView:_view
   usingPosition:[_anotherView.presentationLayer position]];

(Разве вы не знаете анимацию _anotherView заранее? Может быть, тогда вы можете настроить анимацию _view напрямую?)

0 голосов
/ 05 ноября 2011

Почему бы просто не установить обе анимации для обоих видов одновременно?

[UIImageView animateWithDuration:aDuration
                           delay:0
                         options:UIViewAnimationCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState
                      animations:^(void) {
                          view1.center = somePosition;
                          view2.center = someOtherPosition;
                      } completion:NULL];

Они будут перемещаться одновременно и с параметром: UIViewAnimationOptionBeginFromCurrentState, если вы запустите другую анимацию до ее завершения, представления начнутся с того места, где они были остановлены.

Но если это не то, что вы ищете, можете ли вы точно обновить вопрос о том, как движется view1.

0 голосов
/ 05 ноября 2011

Вы хотите взглянуть на слой представления Core Animation, который должен сообщить вам позицию во время анимации.

...