我需要根据另一个视图在屏幕上移动时的位置不断更新视图。我尝试在帧上使用KVO,但它似乎只在动画开始时触发。有推荐的方法吗?
答案 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是如何移动的。