动画框架时如何获取视图位置的变化?

时间:2011-11-05 00:04:42

标签: iphone objective-c ios ipad key-value-observing

我需要根据另一个视图在屏幕上移动时的位置不断更新视图。我尝试在帧上使用KVO,但它似乎只在动画开始时触发。有推荐的方法吗?

3 个答案:

答案 0 :(得分:0)

您想要查看核心动画演示层,该层应该告诉您动画期间的位置。

答案 1 :(得分:0)

我会添加一个可重复的计时器并制作类似的东西:

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

(你不提前知道_anotherView的动画吗?也许你可以直接设置_view动画?)

答案 2 :(得分:0)

为什么不同时为两个视图设置两个动画?

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

它们将同时移动并使用选项:UIViewAnimationOptionBeginFromCurrentState如果在此动画完成之前启动其他动画,则视图将从它们被停止的位置开始。

但如果它不是你想要的,你可以准确地更新你的问题,看看view1是如何移动的。