swift之imageview动画实例

/**
 imageview动画
 */

import UIKit

class LYBImageViewAnimateVC: UIViewController {

let h:CGFloat=UIScreen.main.bounds.size.height
    
 let w:CGFloat=UIScreen.main.bounds.size.width
let ar:[String]=["dw","xw","h01","h02","h03","h04","h05","h06","h07","h08","h09","h10","h11","h12","h13","ho01","ho02","ho03","ho04","ho05","ho06","ho07","ho08","ho09","ho10","ho11","ho12","ho13","f01","f02","f03","f04","f05","f06","f07","f08","f09","f10","f11","f12","f13","m01","m02","m03","m04","m05","m06","m07","m08","m09","m10","m11","m12","m13"]
   var imgAr=[UIImage]()
  var tf:UITextField?//张数
  var tf2:UITextField?//速度
    var imagv:UIImageView=UIImageView.init(frame: CGRect.init(x: 50, y: 50, width: 150, height: 225))
   override func viewDidLoad() {
         super.viewDidLoad()
 setTF()
 }
  override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}
    //设置文本框
func setTF(){
tf=UITextField.init(frame: CGRect.init(x: 10, y: h-200, width: 100, height: 50))
    tf?.keyboardType=UIKeyboardType.numberPad
  tf?.textColor=UIColor.red
   tf?.backgroundColor=UIColor.init(white: 0.8, alpha: 0.8)
    tf?.placeholder="张数"
   view.addSubview(tf!)
 tf2=UITextField.init(frame: CGRect.init(x: 120, y: h-200, width: 100, height: 50))
 tf2?.textColor=UIColor.red
   tf2?.keyboardType=UIKeyboardType.numberPad
 tf2?.backgroundColor=UIColor.init(white: 0.8, alpha: 0.8)
 tf2?.placeholder="速度"
        view.addSubview(tf2!)
  //开始按钮
    let rect:CGRect=CGRect.init(x: 10, y: h-100, width: 50, height: 50)
   let font:UIFont=UIFont.systemFont(ofSize: 15)
 let color:UIColor=UIColor.red
  let bgcolor:UIColor=UIColor.white
   let acs:Selector=#selector(ac)//事件
  let btn:UIButton=setButton(rect: rect, title: "开始", htitle: nil, font: font, hfont: nil, titleColor: color, htitleColor: nil, imageName: nil, himageName: nil,bgcolor: bgcolor,action: acs,target:self)
     view.addSubview(btn)
 //结束按钮
 let rect1:CGRect=CGRect.init(x: 80, y: h-100, width: 50, height: 50)
 let font1:UIFont=UIFont.systemFont(ofSize: 15)
 let color1:UIColor=UIColor.red
      let bgcolor1:UIColor=UIColor.white
   let acs1:Selector=#selector(stop)//事件
let btn1:UIButton=setButton(rect: rect1, title: "结束", htitle: nil, font: font1, hfont: nil, titleColor: color1, htitleColor: nil, imageName: nil, himageName: nil,bgcolor: bgcolor1,action: acs1,target:self)
  view.addSubview(btn1)
  }
  //设置view
 func setView(){
 imagv.center=CGPoint.init(x: w/2, y: (h-200)/2)
   imagv.image=UIImage.init(named: ar[1])// 默认的图片
for i in 0..<54{
  let im:UIImage=UIImage.init(named: ar[i])!
   imgAr.append(im)
    }
        
  view.addSubview(imagv)
      imagv.animationImages=imgAr
        //设置动画
    let suStr=tf2?.text
  //注意字符串不能一步转换成double,需要先转换成Int,在由Int转换成double
   let i = Int(suStr!)
  let d=Double.init(i!)
     imagv.animationDuration = d//动画时长
        
        //        imagv.animationRepeatCount=Int((tf?.text)!)!//重复播放次数
  //       let isA = imagv.isAnimating//是否正在动画
        
   }
  //开始动画
 @objc func ac(){
     setView()
     imagv.startAnimating()//开始动画
}
 //停止按钮
  @objc func stop(){
  imagv.stopAnimating()//停止动画
  }
//创建按钮
 func setButton(rect:CGRect,title:String?,htitle:String?,font:UIFont?,hfont:UIFont?,titleColor:UIColor?,htitleColor:UIColor?,imageName:String?,himageName:String?,bgcolor:UIColor?,action:Selector?,target:UIViewController?)->UIButton{
  //参数依次是定位,标题,选中时的标题,标题字体大小,选中时的标题字体大小,标题颜色,选中时的标题颜色,图片,选中时的图片
     let btn:UIButton=UIButton.init(frame: rect)
      if htitle != nil && htitle != ""{//选中时的标题
     btn.setTitle(htitle, for: UIControlState.highlighted)
       }else if title != nil && title != ""{//
    btn.setTitle(title, for: UIControlState.normal)
       }
   if hfont != nil{//选中时标题字体大小
           btn.titleLabel?.font=hfont
        }else if font != nil{//
      btn.titleLabel?.font=font
        }
        if htitleColor != nil{//选中时标题颜色
        btn.setTitleColor(htitleColor, for: UIControlState.highlighted)
       }else if titleColor != nil{//
   btn.setTitleColor(titleColor, for: UIControlState.normal)
   }
     if himageName != nil && himageName != ""{//选中时的图片
        btn.setImage(UIImage.init(named: himageName!), for: UIControlState.highlighted)
           }else if imageName != nil && imageName != ""{//
    btn.setImage(UIImage.init(named: imageName!), for: UIControlState.normal)
              }
       if bgcolor != nil{//背景颜色
    btn.backgroundColor=bgcolor
  }
if action != nil{//添加事件
    btn.addTarget(target, action: action!, for: UIControlEvents.touchUpInside)
      }
      return btn
     }
  
}

 

 

***********简易版*******

//初始化一个数组来存放图片
    var images = [UIImage]();
    for i in 1 ... 5{
        images.append(UIImage(named: "s\(i)")!)
        
    }
    let imageView  = UIImageView(frame:CGRect(x:0,y:60,width:205,height:300))
    imageView.animationImages = images
    imageView.animationDuration = 5
    imageView.animationRepeatCount = 0
    imageView.startAnimating()
    
    self.view.addSubview(imageView)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值