简单的平移动画

2018-01-11  本文已影响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同上

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

上一篇下一篇

猜你喜欢

热点阅读