1 使用UIImageView播放图片组帧动画

UIImageView控件对于读者来说并不陌生,在前面的章节中使用其进行了图片的展示。其实,UIImageView除了可以进行图片的展示外,还可以对一组图片进行快速切换来形成动画效果。

使用Xcode开发工具创建一个名为UIImageViewAnimationTest的工程,向其中加入3张画面连续的动画图片,如图6-1所示。

图:3张动作连续的小鸟飞行图片

在ViewController类的viewDidLoad方法中添加如下代码。

  override func viewDidLoad() {
        super.viewDidLoad()
        let imageView = UIImageView(frame: CGRect(x: 100, y: 100, width: 42, height: 28))
        var imageArray = Array<UIImage>()
        for index in 0..<3 {
            let image = UIImage(named: "bird\(index+1)")
            imageArray.append(image!)
        }
        //设置动画图片数组
        imageView.animationImages = imageArray
        imageView.animationDuration = 1
        imageView.animationRepeatCount = 0
        self.view.addSubview(imageView)
        imageView.startAnimating()
    }

上面代码中,UIImageView对象的animationImages属性用于设置要播放的动画图片数组,与之对应的UIImageView类中还有一个highlightedAnimationImages属性用于设置处于高亮状态的UIImageView的动画图片数组。

UIImageView对象的animationDuration属性用于设置动画播放一遍的时长,即将动画数组中所有图片展示一遍所消耗的时间。UIImageView对象的animationRepeatCount属性设置动画播放的循环次数,如果设置为0则为无限循环。

将UIImageView对象的动画数组及动画播放的相关属性设置完成后,需要调用startAnimating方法开始播放,与之对应,stopAnimating方法用于停止UIImageView动画的播放。运行工程,效果如图所示,小鸟在不停地扇动翅膀。

图:播放UIImageView图片组动画