ios-动画曲线

动画曲线我们应该或多或少都去接触过,简单介绍下下面每个枚举值的概念

public enum UIViewAnimationCurve : Int {

    
    case easeInOut // slow at beginning and end,也就是开头和末尾都很慢,中间快

    case easeIn // slow at beginning 开始很慢,之后很快

    case easeOut // slow at end 最后很慢,前面很快

    case linear  //匀速
}
当然动画曲线的数值肯定不止上面所说的那四个,我们如果尝试去监听键盘的frame的变化的话我们应该都看到过下面的这个东西
UIView.animate(withDuration: duration) {
            
            //设置动画曲线为7之后
            UIView.setAnimationCurve(UIViewAnimationCurve(rawValue: curve)!)
            
            //强行更新下约束
            self.view.layoutIfNeeded()
        }

这里如果设置了动画曲线的效果为7之后,就表示如果你之前添加了一次动画,然后之后你又添加了动画,就会让动画的图层直接运动到你后续动画的目标位置,这里做的动画就是去改变控件的y值,也就是它的位置。也就是说你本来想让这个控件添加了先向下的动画,再向上的动画,如果你向下的动画没有完成,然后你又添加了向上的动画,那么它就会直接到你向上的所要去的的位置。 如果我们设置了动画曲线为7,也就是说我们设置的动画时长无效,动画时长变成了0.5s

let animation = view1.layer.animation(forKey: "position")
        
print(animation?.duration)
输出为0.5


补充一下其实UIView块动画本质上就是对CAAnimation的包装


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值