黑马程序员技术交流社区

标题: 【iOS技术分享】开源动画框架 --- Pop框架初体验 [打印本页]

作者: Simpon    时间: 2016-5-6 17:36
标题: 【iOS技术分享】开源动画框架 --- Pop框架初体验
本帖最后由 Simpon 于 2016-10-27 10:31 编辑


Facebook开源了期待已久的动画框架Pop,该框架为本文中的iOS app 提供了强大的动画支持。
Pop 中用来定义动画的方法类似于 苹果的Core Animation API。不论你以前是否使用过Core Animation,学习并使用Pop开发一个基本的动画都非常容易。
[attach]82596[/attach]
这是一个简单动画,是借助弹簧效果把一个视图从一个点移动到另一点。
  1. POPSpringAnimation *springAnimation = [POPSpringAnimation animation];
  2. springAnimation.property = [POPAnimatableProperty propertyWithName:kPOPViewCenter];
  3. springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2)];
  4. springAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(100, 10)];
  5. [imageView pop_addAnimation:springAnimation forKey: @"center"];
复制代码

POPSpringAnimation 有几个属性是用来定义弹簧行为的,包括弹簧的反弹力度和速度。你可以这样改变其值:
  1. springAnimation.springBounciness = 20;
  2. springAnimation.springSpeed = 20;
复制代码

动画看起来像这样:


你想要展现动画效果的属性是由POPAnimatableProperty来表现的。该属性通常被用到视图或者图层上,但是Pop实际上可以让你对NSObject 对象上的任何属性执行动画效果(比方:约束)。借助propertyWithName: initalizer:方法可以使用一大堆便捷的常量来创建POPAnimatableProperty。
  1. kPOPViewAlpha;
  2. kPOPViewBackgroundColor;
  3. kPOPViewBounds;
  4. kPOPViewCenter;
  5. kPOPViewFrame
  6. kPOPViewScaleX
  7. kPOPViewScaleXY
  8. kPOPViewScaleY;
  9. kPOPViewSize;
复制代码

你可以在开始、结尾处以及其他地方通过实现POPAnimationDelegate 协议来回调函数,并且分配你的类对象作为POPAnimation的代理。
  1. - (void)pop_animationDidStart:(POPAnimation *)anim;
  2. - (void)pop_animationDidReachToValue:(POPAnimation *)anim;
  3. - (void)pop_animationDidStop:(POPAnimation *)anim finished:(BOOL)finished;
复制代码
如果你已经使用了顶级UIView block animation API,你需要花费一些时间习惯Pop,尤其是寻找UIView 的等效属性。我发现POPSpringAnimation 没有一个持续时间的属性,相反(我假设的)它的时间是由速率和弹动属性控制的。并且如果你搜寻延迟的等效属性,会发现是beginTime(作为Core Animation API的镜像)。
下载:






精华推荐:
黑马程序员:为苹果与iOS开发者的前景正名
与君共勉 --- 记黑马22期同学成长经验。
【持续更新】2016年最全最新的iOS视频+软件+源码+面试/技术
关于iOS 10最新的课程视频及demo第三弹,火速发布了


作者: lvdong22    时间: 2016-5-12 23:16
学安卓的小孩们来凑凑热闹,
作者: Simpon    时间: 2016-5-13 09:20
lvdong22 发表于 2016-5-12 23:16
学安卓的小孩们来凑凑热闹,

双平台开发者 在向你招手 BAT在等着你
作者: luffy99    时间: 2016-5-16 10:44
kankan ,,,,,
作者: heima_heimahaha    时间: 2016-5-20 20:39
学习,学习
作者: 冷风过境    时间: 2016-6-6 15:28
感谢楼主分享
作者: nursen    时间: 2016-6-14 20:01
kankanzenmyang
作者: hexintao    时间: 2016-6-19 20:38
刚学iOS的小菜鸟来学习啦
作者: 帅到天花板    时间: 2016-7-14 15:09
23333333333
作者: damys    时间: 2016-7-18 23:11
Thanks....
作者: SDDWWQ    时间: 2016-7-22 14:59
赞赞赞赞赞赞赞赞赞赞
作者: xjwddym    时间: 2016-7-23 01:00
就;就;来得及发;案件时打发;
作者: bear1998    时间: 2016-8-30 10:26
赞赞赞赞赞赞赞赞赞赞
作者: 萝莉最有爱    时间: 2016-9-5 22:16
看看 看看
作者: 银河雨    时间: 2016-9-14 14:04
看一看,搞一搞
作者: Alejandro    时间: 2016-9-14 16:56
非常好用的资料点32个赞!!
作者: Alejandro    时间: 2016-9-14 16:57
非常好用的资料点32个赞!!
作者: zhou402981948    时间: 2016-9-17 23:58
iOS技术分享】开源动画框架 --- Pop框架初体验
作者: 新程猿    时间: 2016-9-18 16:11
谢谢分享
作者: lwbo_1234    时间: 2016-9-19 18:14
感谢分享  很好的文章感谢分享  很好的文章
作者: newu    时间: 2016-9-20 07:46
刚学iOS的小菜鸟来学习啦
作者: 新程猿    时间: 2016-9-20 23:49
谢谢分享

作者: 辛勤的处男    时间: 2016-11-2 17:04
学习学习
作者: 赫连    时间: 2016-12-10 23:42
和大哥和施工卡号是广大工会的世界观和电视柜大家都得厚厚的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2