您的位置:首页 > 移动开发 > Swift

Swift UIImageView简单动画

2015-09-09 12:00 459 查看
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 欢迎加入 欢迎讨论问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: