Swift Animate


动画都是通过设置起始状态,结束状态,经过时间三个步骤实现的

Spring动画

一般usingSpringWithDamping设置为0.3或0.4

UIView.animate(
 withDuration: 0.3,
    delay: 0,
    usingSpringWithDamping: 0.4,//弹性阻尼 0-1
    initialSpringVelocity: 10,//初始弹簧速度
    options: [],
    animations: {
   
        self.menuBarAnimate()
},
    completion: nil
)

通过改变约束形成动画

改变约束常量constant

动画的函数withDuration设置时间

UIView.animate(withDuration: 0.3) {
   
    self.menuBarAnimate()
}

func menuBarAnimate() {
   
    menuHeight.constant = menuIsOpen ? 200 : 100
    btnTrailing.constant = menuIsOpen ? 20 : 8
    let angle = menuIsOpen ? CGFloat.pi/4 : 0 //2.按钮的旋转动画
    buttonMenu.transform = CGAffineTransform(rotationAngle: angle)
    
    view.layoutIfNeeded()//1.让根视图立刻重新布局
}

image的初始化,设置动画和销毁


func showItem(_ index: Int) {
   
        let imageView = UIImageView(image: UIImage(named: "summericons_100px_0\(index).png"))
        imageView.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.5)
        imageView.layer.cornerRadius = 5.0//设置圆角属性需要加layer
        //1.用代码写的控件,默认情况下xcode会帮我们推断出约束,我们要自定义约束,所以定为false
        imageView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(imageView)//在根视图上加子视图
        
        //1.设定初始约束
        let conWidth = imageView.widthA
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值