Swift UIImageView简单动画

来源:互联网 发布:索尼 上海 软件研发 编辑:程序博客网 时间:2024/04/30 12:34

UIImageView 如果要实现类似于grf的动画图 我们可以直接使用两中方式实现

方法一,设置动态图片

首先,我们需要一组实现动画的图片,按照顺序命名

如图所示 test


我们可以创建UIImage

        let img1=UIImage.animatedImageNamed("test", duration: 2.0)

然后将图片直接赋值给UIImageView即可

完成代码如下

        //使用img来实现动画        let img1=UIImage.animatedImageNamed("test", duration: 2.0)        let imgV3=UIImageView(image: img1)        imgV3.frame=CGRectMake(20, 500, 100, 100)        self.view .addSubview(imgV3)

执行看效果



方法二,通过数组图片赋值

这里我们稍微做复杂一点可以控制图片动画的开始结束


首先创建一个button用于控制动画

        //创建button        let btn=UIButton.buttonWithType(UIButtonType.System) as!UIButton        btn.frame=CGRectMake(20, 55, 120, 36)        btn.setTitle("开始/结束", forState: UIControlState.Normal)        btn.addTarget(self, action: "change", forControlEvents: UIControlEvents.TouchDown)        self.view.addSubview(btn)

接下来我们创建UIImageView 

        //创建UIImageView        let imgV=UIImageView(frame: CGRectMake(20, 100, 100, 100))        imgV.animationDuration=2.0        imgV.tag=99

然后创建图片数组用于动画

                //创建图片        var images=[UIImage]()        for i in 0...2{            let img=UIImage(named: "test\(i)")            images.append(img!)        }

设置UIImageView

        //设置UIImageView的image        imgV.animationImages=images        //设置循环次数,0无限循环        imgV.animationRepeatCount=0        imgV.startAnimating()        self.view.addSubview(imgV)

接下来我们实现刚才button的点击方法,控制动画开始结束

    func change(){        let imgV=self.view.viewWithTag(99) as! UIImageView        if imgV.isAnimating(){            imgV.stopAnimating()        }else{            imgV.startAnimating()        }    }

好了。运行试一下效果


大家有没有发现一个问题,那就是点击结束动画之后整个UIImageView都不显示了

这是因为我们只设置了UIImageView的 animationImages 

而没有设置image的原因


我们修改一下代码即可

完整代码

    override func viewDidLoad() {        super.viewDidLoad()        //UIImageView 一些简单动画                //使用img来实现动画        let img1=UIImage.animatedImageNamed("test", duration: 2.0)        let imgV3=UIImageView(image: img1)        imgV3.frame=CGRectMake(20, 500, 100, 100)        self.view .addSubview(imgV3)                                //创建button        let btn=UIButton.buttonWithType(UIButtonType.System) as!UIButton        btn.frame=CGRectMake(20, 55, 120, 36)        btn.setTitle("开始/结束", forState: UIControlState.Normal)        btn.addTarget(self, action: "change", forControlEvents: UIControlEvents.TouchDown)        self.view.addSubview(btn)                //创建UIImageView        let imgV=UIImageView(frame: CGRectMake(20, 100, 100, 100))        imgV.animationDuration=2.0        imgV.tag=99                        //创建图片        var images=[UIImage]()        for i in 0...2{            let img=UIImage(named: "test\(i)")            images.append(img!)        }                //设置UIImageView的image        imgV.animationImages=images        //以上方法中设置了animationImages  我们会发现当停止动画的时候imgV上边直接没有图片了,如果需要点停止动画之后还能现实图片。我们需要设置图片        imgV.image=UIImage(named: "test2.png")        //设置循环次数,0无限循环        imgV.animationRepeatCount=0        imgV.startAnimating()        self.view.addSubview(imgV)                                                            }    func change(){        let imgV=self.view.viewWithTag(99) as! UIImageView        if imgV.isAnimating(){            imgV.stopAnimating()        }else{            imgV.startAnimating()        }    }


好了。运行测试一下

苹果开发群 :414319235  欢迎加入  欢迎讨论问题

0 0