加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift UIImageView简单动画

发布时间:2020-12-14 01:49:53 所属栏目:百科 来源:网络整理
导读:UIImageView 如果要实现类似于grf的动画图 我们可以直接使用两中方式实现 方法一,设置动态图片 首先,我们需要一组实现动画的图片,按照顺序命名 如图所示 test 我们可以创建UIImage let img1=UIImage.animatedImageNamed("test",duration: 2.0) 然后将图片

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))
        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",100)
        self.view .addSubview(imgV3)
        
        
        
        //创建button
        let btn=UIButton.buttonWithType(UIButtonType.System) as!UIButton
        btn.frame=CGRectMake(20,forControlEvents: UIControlEvents.TouchDown)
        self.view.addSubview(btn)
        
        //创建UIImageView
        let imgV=UIImageView(frame: CGRectMake(20,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 欢迎加入 欢迎讨论问题

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读