2

我有一个 UIImageView,我正在根据用户滑动在屏幕上移动。我使用核心动画完成了这个:

 [UIView beginAnimations:nil context:nil];
 [UIView setAnimationDuration:1.0];

 movingView.frame = theRect;

 [UIView commitAnimations];

它一开始总是很好,但是在从其原始位置到“theRect”位置的中途,它停止并且 UIImageView 跳回到它的起点。它永远不会在同一点上。有时在跳回来之前几乎完全通过,有时只是几乎不动然后跳回来。在此之后没有其他代码正在运行。我试过改变持续时间,但这似乎并不重要。

如果我添加:

 [UIView setAnimationDidStopSelector:@selector(completeAnimation:finished:context:)];
 [UIView setAnimationDelegate:self];

然后它实际上会延迟直到 Duration 完成并运行选择器,即使图像本身几乎立即停止并返回其起点。

希望有人能给我一些关于这里可能发生的事情的提示。

4

1 回答 1

1

如果使用自动布局,您可以动画约束的变化,而不是动画帧的变化(因为重新应用约束时,原始位置将恢复)。有关示例,请参阅动画图像视图以向上滑动。

于 2013-01-12T03:03:03.587 回答