A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Simpon 于 2016-10-27 10:31 编辑


Facebook开源了期待已久的动画框架Pop,该框架为本文中的iOS app 提供了强大的动画支持。
Pop 中用来定义动画的方法类似于 苹果的Core Animation API。不论你以前是否使用过Core Animation,学习并使用Pop开发一个基本的动画都非常容易。

这是一个简单动画,是借助弹簧效果把一个视图从一个点移动到另一点。
  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的镜像)。
下载:

游客,如果您要查看本帖隐藏内容请回复





精华推荐:

23 个回复

倒序浏览
学安卓的小孩们来凑凑热闹,
回复 使用道具 举报
lvdong22 发表于 2016-5-12 23:16
学安卓的小孩们来凑凑热闹,

双平台开发者 在向你招手 BAT在等着你
回复 使用道具 举报
kankan ,,,,,
回复 使用道具 举报
学习,学习
回复 使用道具 举报
感谢楼主分享
回复 使用道具 举报
nursen 初级黑马 2016-6-14 20:01:10
7#
kankanzenmyang
回复 使用道具 举报
刚学iOS的小菜鸟来学习啦
回复 使用道具 举报
23333333333
回复 使用道具 举报
damys 初级黑马 2016-7-18 23:11:32
10#
Thanks....
回复 使用道具 举报
赞赞赞赞赞赞赞赞赞赞
回复 使用道具 举报
就;就;来得及发;案件时打发;
回复 使用道具 举报
赞赞赞赞赞赞赞赞赞赞
回复 使用道具 举报
看看 看看
回复 使用道具 举报
看一看,搞一搞
回复 使用道具 举报
非常好用的资料点32个赞!!
回复 使用道具 举报
非常好用的资料点32个赞!!
回复 使用道具 举报
iOS技术分享】开源动画框架 --- Pop框架初体验
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
感谢分享  很好的文章感谢分享  很好的文章
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马