FaceBook POP动画的几个示例
来源:互联网 发布:安卓广告拦截软件 知乎 编辑:程序博客网 时间:2024/06/06 19:48
pod ‘pop’,’~>1.0’ 安装pop动画框架
Pop是一个动画引擎,支持弹簧动画效果与衰减动画效果,可以用Pop构建出真实的物理交互效果。可以满足大多数的动画效果
动画类型
kPOPLayerPositionY Y 坐标改变,,点击去可知它是calayer 使用的,需要calayer 对象添加这个动画
fromValue 和 toValue 规定了 view 的Y坐标的移动位置,,
[self.viewaddSubview:view];
view.backgroundColor = [UIColorredColor];
// 设置对Y进行平移操作
POPBasicAnimation* spring = [POPBasicAnimationanimationWithPropertyNamed:kPOPLayerPositionY];
/// 延时2秒执行 防止控制器push动画的影响
spring.beginTime =CACurrentMediaTime()+2;
/// 动画时长为1s
spring.duration =1.0f;
/// Y位置的起始位置
spring.fromValue =@(0.f);
/// Y位置的结束位置,,view的添加的位置
spring.toValue =@(CGRectGetMinY(view.frame));
/// 动画结束的时候
[spring setCompletionBlock:^(POPAnimation * ani, BOOL fin) {
/// 可以再接一个动画
}];
POPBasicAnimation *basic = [POPBasicAnimationanimationWithPropertyNamed:kPOPViewBackgroundColor];
// 2.设置初始值
basic.fromValue = [UIColorblackColor];
basic.toValue = [UIColorredColor];
//动画的时长
basic.duration =4.0;
//动画类型系统预设的类型有以下5种:
// kCAMediaTimingFunctionLinear 线性,即匀速
// kCAMediaTimingFunctionEaseIn 先慢后快
// kCAMediaTimingFunctionEaseOut 先快后慢
// kCAMediaTimingFunctionEaseInEaseOut 先慢后快再慢
// kCAMediaTimingFunctionDefault 实际效果是动画中间比较快
basic.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
basic.beginTime =CACurrentMediaTime() +1.f;
// 3.添加到view上
[view pop_addAnimation:basicforKey:@"colorAnimation"];
[self.viewaddSubview:view];
view.backgroundColor = [UIColorredColor];
POPBasicAnimation* basic = [POPBasicAnimationanimationWithPropertyNamed:kPOPLayerRotation];
basic.beginTime =CACurrentMediaTime()+2;
basic.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
basic.toValue = [NSNumbernumberWithFloat:-M_PI_4];
basic.duration =1.4f;
[self.viewaddSubview:view];
view.backgroundColor = [UIColorredColor];
// 设置弹簧动画的路径为Y变化
POPSpringAnimation* spring = [POPSpringAnimationanimationWithPropertyNamed:kPOPLayerPositionY];
// 设置开始时间
spring.beginTime =CACurrentMediaTime()+2;
// Y的起始值
spring.fromValue =@(10.f);
spring.toValue =@(CGRectGetMinY(view.frame));
spring.dynamicsMass =10;
spring.springBounciness =20.f;
spring.springSpeed =2.f;
[spring setCompletionBlock:^(POPAnimation * ani, BOOL fin) {
}];
[self.viewaddSubview:view];
view.backgroundColor = [UIColorredColor];
POPSpringAnimation *anim = [POPSpringAnimationanimationWithPropertyNamed:kPOPViewScaleXY];
// 2.设置变化后的值 放大二倍
anim.toValue = [NSValuevalueWithCGSize:CGSizeMake(2,2)];
//速度可以设置的范围是0-20,默认为12.值越大速度越快,结束的越快
anim.springSpeed =2.f;
//振幅可以设置的范围是0-20,默认为4。值越大振动的幅度越大
anim.springBounciness =10.f;
anim.dynamicsMass =10;
anim.beginTime =CACurrentMediaTime() +1.f;
// 动画结束后进行相关操作 可以再写个动画
};
self.showView = [[UIView alloc]initWithFrame:CGRectMake(20,100, 100,100)];
self.showView.backgroundColor = [UIColor redColor];
[self.viewaddSubview:self.showView];
//添加手势
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(handGesture:)];
[self.showViewaddGestureRecognizer:pan];
- (void)handGesture:(UIPanGestureRecognizer*)recognizer{
/// translationInView:获取到的是手指移动后,在相对坐标中的偏移量
/// locationInView:获取到的是手指点击屏幕实时的坐标点;
CGPoint translation = [recognizertranslationInView:recognizer.view];
recognizer.view.center =CGPointMake(translation.x + recognizer.view.center.x,
translation.y + recognizer.view.center.y);
[recognizer setTranslation:CGPointMake(0,0) inView:self.view];
if (recognizer.state ==UIGestureRecognizerStateEnded) {//松手的时候执行
//获得加速度
CGPoint velocity = [recognizervelocityInView:self.view];
//添加pop动画
POPDecayAnimation *decayAnimation = [POPDecayAnimationanimationWithPropertyNamed:kPOPLayerPosition];
decayAnimation.delegate =self; // <POPAnimationDelegate>
decayAnimation.velocity = [NSValuevalueWithCGPoint:velocity];
[recognizer.view.layerpop_addAnimation:decayAnimationforKey:nil];
}
}
#pragma mark 动画结束的协议方法
- (void)pop_animationDidStop:(POPAnimation *)anim finished:(BOOL)finished {
if (!CGRectContainsPoint(self.view.frame,self.showView.center)) {
self.showView.frame =CGRectMake(20,100, 100,100);
}
}
- FaceBook POP动画的几个示例
- facebook paper开放的动画库pop
- 开源动画框架Facebook的Pop
- facebook开源动画pop
- facebook开源动画pop
- facebook开源动画pop
- Facebook POP动画简单使用
- Facebook POP动画简单使用
- FaceBook pop 动画 pod 引入
- Facebook POP动画简单使用
- iOS Facebook pop动画进阶
- 关于对FaceBook POP 动画框架的相关
- 利用facebook pop进行数字的动画显示。
- 初步探索Facebook程序员开发的POP动画库
- IOS facebook 开源动画引擎 pop
- POP — Facebook开源动画引擎
- FaceBook pop 动画开源框架使用说明
- Facebook POP 动画框架 进阶指南
- 什么东西能涨几百倍
- Tensorboard的使用
- 如何改变物料的评估类型和评估类?
- Android 反编译初步之基础工具入门篇详解(附图)
- javascript代码验证身份证格式是否正确
- FaceBook POP动画的几个示例
- Java中final关键字的用法总结。
- 有序广播和无序广播
- Bootstrap 自带组件
- .NET进阶之路
- 给 Java 开发者的 10 个大数据工具和框架
- 在Ubuntu上配置拓展屏幕
- 破解TLS:这么做真的有利于安全吗?
- unit10-firewalld配置【当前内容包括iptables配置】