Core Animation和UIImageView返回起始位置

时间:2013-01-11 23:35:55

标签: iphone ios

我有一个UIImageView,我正在基于用户滑动在屏幕上移动。我使用Core Animation完成了这个:

 [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];

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

希望有人可以给我一些提示,告诉我这里可能会发生什么。

1 个答案:

答案 0 :(得分:1)

如果使用自动布局,则可以设置约束更改的动画,而不是动画帧的更改动画(因为重新应用约束时,将恢复原始位置)。有关示例,请参阅Animating an image view to slide upwards