学习使用炫酷的 Facebook Pop (二)
来源:互联网 发布:中世纪手机游戏知乎 编辑:程序博客网 时间:2024/05/20 06:53
假如要对一个view进行一种animation,使得这个view往下移动一段距离,弹一弹然后停住,就要利用POPSpringAnimation这个类。
很大程度上参考了popping那份代码。感谢
直接上代码:
-(void)moveDownView:(UIView *)view{ /* kPOPLayerPosition意思是这个animation对象要干的事情是移动layer的Position 还有很多其他类型的spring animation kPOPLayerOpacity 透明度渐变 kPOPLayerRotation 旋转渐变 kPOPLayerScaleXY 大小渐变 kPOPLayerTranslationXY 仿射变换渐变 等等等等。。实在太多不宜列举 */ POPSpringAnimation *positionAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerPosition]; /* toValue是设置变化后的参数,例如PositionAnimation的话,toValue就是终点的坐标 1.springBounciness 弹簧弹力 取值范围为[0, 20],默认值为4 2.springSpeed 弹簧速度,速度越快,动画时间越短 [0, 20],默认为12,和springBounciness一起决定着弹簧动画的效果 3.dynamicsTension 弹簧的张力 4.dynamicsFriction 弹簧摩擦 5.dynamicsMass 质量 。张力,摩擦,质量这三者可以从更细的粒度上替代springBounciness和springSpeed控制弹簧动画的效果 */ positionAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(view.center.x,view.center.y+100)]; positionAnimation.springSpeed = 1.0f; positionAnimation.springBounciness = 20.0f; /* 设置好参数后,就可以用函数pop_addAnimation: forKey来开始animation。这里的key应该是记录这次animation的设置,保存到某个堆栈,在需要的时候重新调用出来。 */ [view.layer pop_addAnimation:positionAnimation forKey:@"layerPositionAnimation"]; POPSpringAnimation *scaleAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; scaleAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(0.5, 0.5)]; scaleAnimation.springBounciness = 10.f; [view.layer pop_addAnimation:scaleAnimation forKey:@"scaleAnimation"];}
调用这个函数,就可以使得view开始animation,例如配合一个touchUpInside
- (void)touchUpInside:(UIControl *)sender { AnimationInfo animationInfo = [self animationInfoForLayer:sender.layer]; BOOL hasAnimations = sender.layer.pop_animationKeys.count; if (hasAnimations && animationInfo.progress < 0.98) { [self pauseAllAnimations:NO forLayer:sender.layer]; return; } [sender.layer pop_removeAllAnimations]; [self moveDownView:sender];}
特别备注一:
测试了几组参数,先描述如下
0 0
- 学习使用炫酷的 Facebook Pop (二)
- 学习使用炫酷的 Facebook Pop (一)
- 学习使用炫酷的 Facebook Pop(三)
- 学习使用炫酷的 Facebook Pop (四)
- Facebook POP框架的简单使用
- facebook pop 学习笔记
- facebook pop学习笔记-1
- Facebook POP动效库使用教程
- Facebook POP动画简单使用
- Facebook POP动效库使用教程
- Facebook POP动效库使用教程
- Facebook POP动画简单使用
- Facebook POP动效库使用教程
- Facebook POP动画简单使用
- 使用 facebook pop 遇见的问题及解决办法
- facebook pop
- Facebook pop
- Facebook: Pop
- python 网络爬虫问题
- 第15周项目1
- 十五周项目二 2
- atoi与itoa代码实现
- 理解堆栈及其利用方法
- 学习使用炫酷的 Facebook Pop (二)
- 计数符号 n 总是不能执行加一语句的
- The selected device specifies an unsupported architecture 解决办法
- 如何把SecureCRT合并在一起
- 统计一个二进制字符串连续出现0或者连续出现1的最大次数
- Block编程值得注意的那些事儿
- Python笔记——读写mat数据
- 用最简单的方法去实现android中的一些提示
- 第十五周项目三(2)指针变量