Facebook发布了Paper之后,进一步开源了其背后的动画引擎Pop,此框架并不满足于苹果自身的动画单调性,致力于给用户一种逼真的动画效果,可以减少用户对于苹果原生Core Animation 复杂的运算,并且Pop提供的API和苹果原生的API用法类似,让开发者更容易接受。使用pop框架进行动画展示会让你的App看起来更加有生气,感觉像是活了一样。

它主要包含的动画:

  POPSpringAnimation 有弹性效果的动画类

      POPBasicAnimation基本动画

      POPDecayAnimation衰减动画类

      POPCustomAnimation可以自定义动画的类

个人使用第一种动画比较多,做了个小Demo,仅做参考。

@interface ViewController ()

@property (nonatomic,strong) UIButton *button;

    @property (nonatomic,assign) BOOL isSelected;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad]; [self.view addSubview:self.button ];
[self.button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
[self.button setBackgroundImage:[UIImage imageNamed:@"deleteButtonNormal"] forState:UIControlStateNormal];
self.button.backgroundColor = [UIColor orangeColor]; self.isSelected = YES;
} //懒加载
- (UIButton *)button{
if (_button == nil) {
_button = [[UIButton alloc]initWithFrame:CGRectMake(, , , )];
}
return _button;
} - (void)buttonClick{
POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerSize]; if (self.isSelected == YES) {
[_button setBackgroundImage:[UIImage imageNamed:@"deleteButtonSelected"] forState:UIControlStateNormal];
self.isSelected = NO;
springAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(, )];
}else{
[_button setBackgroundImage:[UIImage imageNamed:@"deleteButtonNormal"] forState:UIControlStateNormal];
self.isSelected = YES;
springAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(, )];
}
//弹性值
springAnimation.springBounciness = ;
//弹性速度
springAnimation.springSpeed = ; [self.button.layer pop_addAnimation:springAnimation forKey:@"changesize"];
}

这是一个很简单的展示,作为学习pop框架的开始。

最新文章

  1. Spring3.0之后->Spring MVC过滤器-HiddenHttpMethodFilter
  2. IOS 问题集锦
  3. linux主机间复制文件
  4. iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信
  5. 黄聪:C#禁止Webbrowser中的脚本错误提示,自动屏蔽弹出窗口
  6. jquery控制元素的淡入淡出切换
  7. 查看EIGRP运行情况详细
  8. 教程-DelphiXE7如何调用Java Class,JAR等文件?
  9. Python中raw字符串与多行字符串
  10. My First Blog.
  11. Java 枚举随笔
  12. lumen安装后输出hello world
  13. day05 Servlet 开发和 ServletConfig 与 ServletContext 对象
  14. 3GPP 测试 /etc/udev/ruse.d/50文件 /lib/udev/ruse.d/55* 网络配置
  15. 【PHP函数】PHP 去掉字符串中的转义符号
  16. 转:WKT、SRID、EPSG概念
  17. 二、Internet地址结构
  18. jQuery操作下拉框的text值和val值
  19. [osg]OSG使用更新回调来更改模型
  20. oracle批量插入優化方案

热门文章

  1. 让您的Xcode键字如飞
  2. java中的类修饰符、成员变量修饰符、方法修饰符
  3. 学习笔记:GLSL Core Tutorial – Vertex Shader(内置变量说明)
  4. OpenGL中glFrustum()和gluPerspective()的相互转换
  5. TextureView+SurfaceTexture+OpenGL ES来播放视频(二)
  6. 【转】从1到N这N个数中1的出现了多少次?
  7. oracle 锁表的处理。
  8. List、Set、Map集合存放null解析及HashMap、Hashtable异同点解析
  9. linux内核移植到S5pv210
  10. java下载多个文件文件