swift UIImageView简单动画
2015-11-09 13:32
513 查看
UIImageView 如果要实现类似于grf的动画图 我们可以直接使用两中方式实现
方法一,设置动态图片
首先,我们需要一组实现动画的图片,按照顺序命名
![](https://img-blog.csdn.net/20150909114834060?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如图所示 test
我们可以创建UIImage
[objc] view
plaincopy
let img1=UIImage.animatedImageNamed("test", duration: 2.0)
然后将图片直接赋值给UIImageView即可
完成代码如下
[objc] view
plaincopy
//使用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用于控制动画
[objc] view
plaincopy
//创建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
[objc] view
plaincopy
//创建UIImageView
let imgV=UIImageView(frame: CGRectMake(20, 100, 100, 100))
imgV.animationDuration=2.0
imgV.tag=99
然后创建图片数组用于动画
[objc] view
plaincopy
//创建图片
var images=[UIImage]()
for i in 0...2{
let img=UIImage(named: "test\(i)")
images.append(img!)
}
设置UIImageView
[objc] view
plaincopy
//设置UIImageView的image
imgV.animationImages=images
//设置循环次数,0无限循环
imgV.animationRepeatCount=0
imgV.startAnimating()
self.view.addSubview(imgV)
接下来我们实现刚才button的点击方法,控制动画开始结束
[objc] view
plaincopy
func change(){
let imgV=self.view.viewWithTag(99) as! UIImageView
if imgV.isAnimating(){
imgV.stopAnimating()
}else{
imgV.startAnimating()
}
}
好了。运行试一下效果
大家有没有发现一个问题,那就是点击结束动画之后整个UIImageView都不显示了
这是因为我们只设置了UIImageView的 animationImages
而没有设置image的原因
我们修改一下代码即可
完整代码
[objc] view
plaincopy
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()
}
}
方法一,设置动态图片
首先,我们需要一组实现动画的图片,按照顺序命名
如图所示 test
我们可以创建UIImage
[objc] view
plaincopy
let img1=UIImage.animatedImageNamed("test", duration: 2.0)
然后将图片直接赋值给UIImageView即可
完成代码如下
[objc] view
plaincopy
//使用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用于控制动画
[objc] view
plaincopy
//创建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
[objc] view
plaincopy
//创建UIImageView
let imgV=UIImageView(frame: CGRectMake(20, 100, 100, 100))
imgV.animationDuration=2.0
imgV.tag=99
然后创建图片数组用于动画
[objc] view
plaincopy
//创建图片
var images=[UIImage]()
for i in 0...2{
let img=UIImage(named: "test\(i)")
images.append(img!)
}
设置UIImageView
[objc] view
plaincopy
//设置UIImageView的image
imgV.animationImages=images
//设置循环次数,0无限循环
imgV.animationRepeatCount=0
imgV.startAnimating()
self.view.addSubview(imgV)
接下来我们实现刚才button的点击方法,控制动画开始结束
[objc] view
plaincopy
func change(){
let imgV=self.view.viewWithTag(99) as! UIImageView
if imgV.isAnimating(){
imgV.stopAnimating()
}else{
imgV.startAnimating()
}
}
好了。运行试一下效果
大家有没有发现一个问题,那就是点击结束动画之后整个UIImageView都不显示了
这是因为我们只设置了UIImageView的 animationImages
而没有设置image的原因
我们修改一下代码即可
完整代码
[objc] view
plaincopy
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()
}
}
相关文章推荐
- swift UIImageView简单动画
- swift UIImageView构造方法
- swift UIImageView构造方法
- Swift 2.1 编程语言速览
- swift UIButton 设置动态图片
- swift UIButton 设置动态图片
- swift UIButton
- swift UIButton
- swift UILable 文字颜色分段
- swift UILable 文字颜色分段
- swift UILable换行问题
- swift UILable换行问题
- swift UILable 文字大小随宽度调整
- swift UILable 文字大小随宽度调整
- swift UILabel常用功能
- swift UILabel常用功能
- swift UIView简单动画
- swift UIView简单动画
- swift UIView层次调整
- swift UIView层次调整