POP学习

作者: LeeDev | 来源:发表于2017-02-25 18:16 被阅读47次
  1. 首先找出一些学习的链接

2.Pop 学习

  • 学习pop的一些属性 主要动画

    • POPBasicAnimation
      • toValue
      • fromValue
      • beginTime = CACurrentMediaTime() + 1;
      • timingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
      • property:自定义的时候需要用到

/* 位移 */
POPBasicAnimation * anim = [POPBasicAnimation animationWithPropertyNamed:kPOPLayerPositionY];
anim.toValue = @(self.testView.frame.origin.y + 250);
anim.beginTime = CACurrentMediaTime() + 1;
anim.duration = 1;
/

* kCAMediaTimingFunctionLinear //匀速
kCAMediaTimingFunctionEaseIn//缓慢进入
kCAMediaTimingFunctionEaseOut//缓慢出来
kCAMediaTimingFunctionEaseInEaseOut//缓慢进入 再 缓慢出来
**/
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.testView pop_addAnimation:anim forKey:nil];

POPAnimatableProperty * prop = [POPAnimatableProperty propertyWithName:@"" initializer:^(POPMutableAnimatableProperty *prop) {

    prop.writeBlock = ^(id obj, const CGFloat values[]){
        
        UILabel *label = (UILabel*)obj;
        label.text = [NSString stringWithFormat:@"%02d:%02d:%02d",(int)values[0]/60,(int)values[0]%60,(int)(values[0]*100)%100];
    };
    prop.readBlock = ^(id obj, CGFloat values[]){
        
        UILabel *label = (UILabel*)obj;
        NSLog(@"obj = %@",label.text);
    };
    prop.threshold = 60*3;
}];
POPBasicAnimation * ani = [POPBasicAnimation animation];
ani.property = prop;
ani.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
ani.fromValue = @(0);
ani.toValue   = @(3*60);
ani.duration  = 3*60;
ani.beginTime = CACurrentMediaTime() + 1;
[self.testLabel pop_addAnimation:ani forKey:nil];
- POPSpringAnimation(弹性)
  - springSpeed :[0-20] 弹力 越大则震动幅度越大
  - springBounciness:[0-20] 速度 越大则动画结束越快

POPSpringAnimation * springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerPositionX];
springAnimation.toValue = @(self.testView.frame.origin.x + 200);
springAnimation.beginTime = CACurrentMediaTime() + 1;
/*
* springBounciness:4.0 //[0-20] 弹力 越大则震动幅度越大
springSpeed :12.0 //[0-20] 速度 越大则动画结束越快
**/
springAnimation.springSpeed = 20;
// springAnimation.springBounciness = 20;
[self.testView pop_addAnimation:springAnimation forKey:nil];

- POPDecayAnimation(衰减)
  - velocity:开始速度
  ```
POPDecayAnimation * anDecay = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPositionX];
  anDecay.velocity = @(1000);
  anDecay.beginTime = CACurrentMediaTime() + 1;
  [self.testView pop_addAnimation:anDecay forKey:nil];
  ```


相关文章

网友评论

    本文标题:POP学习

    本文链接:https://www.haomeiwen.com/subject/tdigwttx.html