-1

我得到以下代码:

test.image = [testArray lastObject];
test.animationImages = testArray;
test.animationDuration = 1;
test.animationRepeatCount = 1;
[test startAnimating];

我确信有一天我读到可以“倒带”动画,但我再也找不到那个解决方案了 - 有没有比排序(DESC)数组更好的解决方案?

谢谢!

4

2 回答 2

2

您可以通过访问 reverseObjectEnumerator 的对象来反转动画:

testArray = [[testArray reverseObjectEnumerator] allObjects];

然后,您可以将其传递到动画中:

test.image = [testArray lastObject];
test.animationImages = [[testArray reverseObjectEnumerator] allObjects];
test.animationDuration = 1;
test.animationRepeatCount = 1;
[test startAnimating];

或者您可以查看 UIViewAnimationOptionAutoreverse,但我不确定它是否完全是您正在寻找的。

于 2012-11-12T17:18:07.917 回答
0

您正在使用UIImageView,它具有有限的动画可能性。恢复动画是可能的,但使用基于 CoreAnimation 的动画。您有两种选择,具体取决于您希望对动画进行控制的级别。

  • 继续使用UIImageView,并按照 max_ 的建议进行操作:修改 images 数组,以便最终播放动画(如果您需要向前然后向后播放,您可以进一步更改数组以获得该效果。每个图像都会有在数组中多次出现以实现此目的)

  • 切换到CALayer动画。您必须将您的数组转换UIImages为数组,并在图层的键路径上CGImages创建一个CABasicAnimation操作。content然后,您将拥有所需的所有控件,包括自动反转动画的选项,因为动画对象实现了CAMediaTiming允许此类内容的协议。

于 2012-11-12T21:33:51.783 回答