开元大法好,首先感谢Facebook开源了POP动效库,让人人都能制作出华丽的动效。
在
GitHub
上打开Pop的时候吓了我一跳,截止到现在已经有17146
个Star
了。这么好的开源库,我现在才来学习真的是遗憾啊,不过亡羊补牢为时不晚。
好了废话不多说了,这么好的库我已经忍不住想体验一下了。
完成五步即可使用PopAnimation
- 选择一种动画
- 决定做Layer层还是View层某一属性动画
- 设置属性
- 为动画起名和指定代理
- 添加动画
选择动画
在Pop
开源框架中有三种框架供我们选择
POPBasicAnimation
POPSpringAnimation
POPDecayAnimation
下面以POPBasicAnimation
为例给我相应代码,其它动画响应代码可以在GitHub
下载。
//创建选择的动画
POPBasicAnimation *basicAnimation = [POPBasicAnimation animation];
//设置动画的timingFunction
basicAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
动画的timingFunction
系统提供了五种以供选择
- kCAMediaTimingFunctionLinear 线性
- kCAMediaTimingFunctionEaseIn 慢入
- kCAMediaTimingFunctionEaseOut 慢出
- kCAMediaTimingFunctionEaseInEaseOut 慢入慢出
- kCAMediaTimingFunctionDefault 默认
决定做Layer层还是View层某一属性动画
对Layer
层或者View
层的Property
做相应设置,在Pop
中我们可以对一下Property
做相应设置
View Property | Description | Layer Property | Description |
---|---|---|---|
kPOPViewAlpha | Alpha | kPOPLayerBackgroundColor | Color |
kPOPViewBackgroundColor | groundColor | kPOPLayerBounds/ScaleXY/Size | Size |
kPOPViewBounds | Size | kPOPLayerRotation | Rotation |
kPOPViewCenter | Center | kPOPLayerOpacity | Opacity |
kPOPViewFrame | Location&Size | kPOPLayerPosition | Position |
kPOPViewScaleXY | Size | kPOPLayerPositionX/Y | X/Y Position |
kPOPViewSize | Size(Scale) |
//设置动画属性
basicAnimation.property = [POPAnimatableProperty propertyWithName:kPOPViewAlpha];
//设置动画时间
basicAnim.duration = 2;
//设置动画前的值
basicAnimation.fromValue = @(1);
//设置动画后的值
basicAnimation.toValue = @(0);
给动画起名字和指定代理
当然如果你只是想简单的做一个动画,而不想在动画开始前,中,后做一些操作的话这一步可以忽略。Pop
在POPAnimationDelegate
为我们提供了一些常用的代理方法
//Called on animation start.
- (void)pop_animationDidStart:(POPAnimation *)anim;
//Called when value meets or exceeds to value.
- (void)pop_animationDidReachToValue:(POPAnimation *)anim;
//Called on animation stop.
- (void)pop_animationDidStop:(POPAnimation *)anim finished:(BOOL)finished;
//Called each frame animation is applied.
- (void)pop_animationDidApply:(POPAnimation *)anim;
将动画添加到对应的视图上
[self.animV pop_addAnimation:basicAnim forKey:@"PopBasicAnimation"];
好一个简单的Pop
动画完成
email:huliuworld@yahoo.com
相关代码:https://github.com/LHCoder2016/Pop.git
网友评论