美文网首页
简单的平移动画

简单的平移动画

作者: 小蜗牛飞 | 来源:发表于2018-01-11 11:01 被阅读16次

          视图从原始位置移动到指定位置,一般而言,直接用frame重新设置它的位置,但是这样有一个不好的地方就是闲的太生硬了,所以我们应该考虑给它加点动画效果,这样看起来会比较流畅。

        1. 弹簧效果:CASpringAnimation 类

         这个是在iOS 9 之后才出现的,项目适用对象如果是8以上版本可以选择其它方式。

      代码如下:

           CASpringAnimation *spring = [CASpringAnimation animationWithKeyPath:@"position"];

           spring.damping = 5;//阻尼系数,值越大,停止越快

           spring.stiffness = 100;

           spring.mass = 1;

           spring.initialVelocity = 0;

           spring.fromValue = [NSValue valueWithCGPoint:fromValue];

           spring.toValue = [NSValue valueWithCGPoint:toValue];

           spring.duration = [spring settlingDuration];

    注释:fromValue(原始位置CGPoint), toValue(指定位置CGPoint)

    调用:[视图名.layer addAnimation:spring forkey:spring.keyPath];

        2.纵向平移(y)

       这里使用的是CABasicAnimation类,它是基础动画类。

    代码如下:

           CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];

           animation.fromValue = [NSValue valueWithCGPoint:fromValue];

           animation.toValue = [NSValue valueWithCGPoint:toValue];

           animation.duration = 0.5;//持续时间

           animation.removedOnCompletion = NO;//运行一次是否移除动画

           animation.fillMode = kCAFillModeForwards;//动画结束后,layer会一直保持着动画最后的状态 

    注释:fromValue和toValue同上

    希望文章对你有小小的帮助。

    相关文章

      网友评论

          本文标题:简单的平移动画

          本文链接:https://www.haomeiwen.com/subject/uzdznxtx.html