iOS开发之Pop框架(一)
来源:互联网 发布:api数据 编辑:程序博客网 时间:2024/05/18 03:04
Facebook开源了期待已久的动画框架Pop,该框架为本文中的iOS app 提供了强大的动画支持。
Pop 中用来定义动画的方法类似于 苹果的Core Animation API。不论你以前是否使用过Core Animation,学习并使用Pop开发一个基本的动画都非常容易。
这是一个简单动画,是借助弹簧效果把一个视图从一个点移动到另一点。
- POPSpringAnimation *springAnimation = [POPSpringAnimation animation];
- springAnimation.property = [POPAnimatableProperty propertyWithName:kPOPViewCenter];
- springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2)];
- springAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(100, 10)];
- [imageView pop_addAnimation:springAnimation forKey:@"center"];
POPSpringAnimation 有几个属性是用来定义弹簧行为的,包括弹簧的反弹力度和速度。你可以这样改变其值:
- springAnimation.springBounciness = 20;
- springAnimation.springSpeed = 20;
动画看起来像这样:
你想要展现动画效果的属性是由POPAnimatableProperty来表现的。该属性通常被用到视图或者图层上,但是Pop实际上可以让你对NSObject 对象上的任何属性执行动画效果(比方:约束)。借助propertyWithName: initalizer:方法可以使用一大堆便捷的常量来创建POPAnimatableProperty。
- kPOPViewAlpha;
- kPOPViewBackgroundColor;
- kPOPViewBounds;
- kPOPViewCenter;
- kPOPViewFrame;
- kPOPViewScaleX;
- kPOPViewScaleXY;
- kPOPViewScaleY;
- kPOPViewSize;
你可以在开始、结尾处以及其他地方通过实现POPAnimationDelegate 协议来回调函数,并且分配你的类对象作为POPAnimation的代理。
- - (void)pop_animationDidStart:(POPAnimation *)anim;
- - (void)pop_animationDidReachToValue:(POPAnimation *)anim;
- - (void)pop_animationDidStop:(POPAnimation *)anim finished:(BOOL)finished;
如果你已经使用了顶级UIView block animation API,你需要花费一些时间习惯Pop,尤其是寻找UIView 的等效属性。我发现POPSpringAnimation 没有一个持续时间的属性,相反(我假设的)它的时间是由速率和弹动属性控制的。并且如果你搜寻延迟的等效属性,会发现是beginTime(作为Core Animation API的镜像)。
Pop仍然有很多地方有待研究。
本文有因为问题请联系
QQ:563699115
Telephone:18341266547
0 0
- iOS开发之Pop框架(一)
- iOS开发之Pop框架(二)
- iOS开发之Pop框架(三)
- iOS 开发之照片框架详解一
- IOS 动画框架pop使用方法
- iOS-MultipeerConnectivity框架开发(一)
- iOS开发框架介绍(一)---iOS开发介绍
- iOS开发框架介绍(一)---iOS开发介绍
- iOS开发-------3D Touch之Peek,Pop,UIPreviewAction
- IOS开发系列—Objective-C之Foundation框架(一)
- 黑马程序员——ios开发基础之OC中的Foundation框架(一)
- 【iOS开发】iOS框架(一):Cocoa Touch
- swift开发之pop动画
- iOS 开发之常用框架
- ios开发之GCD基础(一)
- iOS开发之手势识别(一)
- iOS 开发之ASIHttpRequest(一)
- Ios开发随笔之block(一)
- 读取lucene索引域中的term
- Matconvnet学习笔记
- Ubuntu16.04 apache2配置虚拟主机
- validator-去掉隐藏的验证
- 线段树
- iOS开发之Pop框架(一)
- 导入eclipse项目
- 栈、队列、优先队列
- Tensorflow中的Session() 与InteractiveSession()
- 寻找数组中的逆序队--2010某谷面试题--在死亡皇后岛挖萝卜的菲尼克斯
- nlp_关键词库(mysql数据库)去噪_python
- 山东理工OJ 1163 C语言实验——排列
- DotLoopViewpager两个方法,几行代码实现轮播图,超强自定义的自动轮播的小圆点指示器
- CODEFORCES, 270D Greenhouse Effect