我得到以下代码:
test.image = [testArray lastObject];
test.animationImages = testArray;
test.animationDuration = 1;
test.animationRepeatCount = 1;
[test startAnimating];
我确信有一天我读到可以“倒带”动画,但我再也找不到那个解决方案了 - 有没有比排序(DESC)数组更好的解决方案?
谢谢!
我得到以下代码:
test.image = [testArray lastObject];
test.animationImages = testArray;
test.animationDuration = 1;
test.animationRepeatCount = 1;
[test startAnimating];
我确信有一天我读到可以“倒带”动画,但我再也找不到那个解决方案了 - 有没有比排序(DESC)数组更好的解决方案?
谢谢!
您可以通过访问 reverseObjectEnumerator 的对象来反转动画:
testArray = [[testArray reverseObjectEnumerator] allObjects];
然后,您可以将其传递到动画中:
test.image = [testArray lastObject];
test.animationImages = [[testArray reverseObjectEnumerator] allObjects];
test.animationDuration = 1;
test.animationRepeatCount = 1;
[test startAnimating];
或者您可以查看 UIViewAnimationOptionAutoreverse,但我不确定它是否完全是您正在寻找的。
您正在使用UIImageView
,它具有有限的动画可能性。恢复动画是可能的,但使用基于 CoreAnimation 的动画。您有两种选择,具体取决于您希望对动画进行控制的级别。
继续使用UIImageView
,并按照 max_ 的建议进行操作:修改 images 数组,以便最终播放动画(如果您需要向前然后向后播放,您可以进一步更改数组以获得该效果。每个图像都会有在数组中多次出现以实现此目的)
切换到CALayer
动画。您必须将您的数组转换UIImages
为数组,并在图层的键路径上CGImages
创建一个CABasicAnimation
操作。content
然后,您将拥有所需的所有控件,包括自动反转动画的选项,因为动画对象实现了CAMediaTiming
允许此类内容的协议。