iOS开发之Pop框架(一)

来源:互联网 发布:api数据 编辑:程序博客网 时间:2024/05/18 03:04
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的镜像)。
 
Pop仍然有很多地方有待研究。

本文有因为问题请联系

QQ:563699115

Telephone:18341266547



0 0
原创粉丝点击