您的位置:首页 > 编程语言 > Java开发

facebook pop spring和decay效果 学习纪要

2014-06-29 22:04 387 查看
facebook pop动画引擎新增了spring和decay两种动画特效。 那这两种特效什么场合使用比较好呢?下面就介绍一下我在使用时的一些理解。

spring效果:



中文理解为弹簧效果。最能体现这种效果的就是scaleAnimation。设置fromValue或toValue,就会看见scale大小的变化带着弹簧效果,而不是线性的。

示例代码:

POPSpringAnimation *scaleAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY];
scaleAnimation.springBounciness = 20;
scaleAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(1.2, 1.4)];
[toView.layer pop_addAnimation:scaleAnimation forKey:@"scaleAnimation"];
所以spring效果主要能在面积大小改变的动画中体现出来。

decay效果:



举个栗子:有一项运动叫做冰壶,运动员在冰面丢出一个冰壶,这个冰壶在冰面上会逐渐逐渐慢下来,最终停止。那么这个冰壶从速度最大到速度为零的整个过程中,速率的衰减就是一个decay过程。decay特效就是模拟这种自然衰退的过程。

所以这种效果比较适合用在关于速率方面的动画。比如,界面上有一个球型的图像,用户可以在界面上拖动这个图像。如果不加任何效果,用户手指拖到哪,图像就停留在哪。

如果在用户停止拖动瞬间获得拖动的速率,再用这个速率作为初始速率,用POPDecayAnimation就能实现图像的自然衰退停止,就像一个球自然的慢慢滚动停止。

示例代码:

CGPoint velocity = [recognizer velocityInView:self.view];
POPDecayAnimation *positionAnimation = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPosition];
positionAnimation.velocity = [NSValue valueWithCGPoint:velocity];
[recognizer.view.layer pop_addAnimation:positionAnimation forKey:@"layerPositionAnimation"];


所以decay效果比较能在线性的速率改变中体现出效果,比如position的移动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pop ios开发 facebook