PopAnimation入门

开元大法好,首先感谢Facebook开源了POP动效库,让人人都能制作出华丽的动效。

GitHub上打开Pop的时候吓了我一跳,截止到现在已经有17146Star了。这么好的开源库,我现在才来学习真的是遗憾啊,不过亡羊补牢为时不晚。

好了废话不多说了,这么好的库我已经忍不住想体验一下了。

完成五步即可使用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);

给动画起名字和指定代理

当然如果你只是想简单的做一个动画,而不想在动画开始前,中,后做一些操作的话这一步可以忽略。PopPOPAnimationDelegate为我们提供了一些常用的代理方法

//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:[email protected]
相关代码:https://github.com/LHCoder2016/Pop.git

你可能感兴趣的:(PopAnimation入门)