2016-04-21 31 views
0

我试图建立一个基于数字动画绘制手势的应用程序。我在透明层上制作了三套图像序列。我希望在应用程序打开后立即加载一个图像序列,并在该图像序列结束时,我希望它保留在最终帧上并触发另一个随机图像序列。我对编程相当陌生,并且在UIImageView中查看了使用图像序列创建动画的教程,但是它们都是用Obj C或Swift 1编写的,而我正在使用Swift 2.0。我无法在Swift 2.0中成功加载一个图像序列。试图找出如何在Swift 2.0中加载多个图像序列

我看错了方向吗?我应该看看Swift 2.0的另一部分吗?或者有没有关于这方面的教程,我还没有找到它们呢?任何帮助正确的方向将不胜感激。

+0

欢迎SO :-) 请告诉我们你已经那么远,尝试和看看[如何提问](http://stackoverflow.com/help/how-to-问) – JimHawkins

回答

1

你可以在UIImage上准备一个数组。 UIImageView有一个名为“animationImages”的属性。你可以使用它像这样:

var animationImages:[UIImage] = [UIImage(named: "image1")!, UIImage(named: "image2")!, UIImage(named: "image3")!]; 
imageView.animationImages = animationImages; 
imageView.animationDuration = NSTimeInterval(animationDuration); 
imageView.startAnimating(); 

你可以设置一个名为“animationRepeatCount”,以任何你喜欢的财产。 0(零)用于无限循环。

现在您知道动画持续时间和动画重复次数。你可以很容易地计算出动画的总时间:

var animationCompleteDelay = animationDuration * imageView.animationRepeatCount; 

然后安排一个定时器在这个总动画时间后触发。

var timer = NSTimer.scheduledTimerWithTimeInterval(animationCompleteDelay, target: self, selector: "animationCompleteHandler:", userInfo: nil, repeats: false); 
+0

非常感谢!这是超级有用的。我现在有一个完整的图像序列播放,这是一个巨大的飞跃! –

+0

我一直在玩animationRepeatCount,并给它一个值1,以便它只播放一次。 我试过计时器选项,但很快意识到使用计时器将意味着图像序列将按时间顺序而不是随机地加载。是否有可能创建一个可以由案例触发的图像序列数组的数组? –