我有一个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];
然后它实际上会延迟,直到持续时间完成并运行选择器,即使图像本身停止并几乎立即返回其起始点。
希望有人可以给我一些提示,告诉我这里可能会发生什么。
答案 0 :(得分:1)
如果使用自动布局,则可以设置约束更改的动画,而不是动画帧的更改动画(因为重新应用约束时,将恢复原始位置)。有关示例,请参阅Animating an image view to slide upwards。