POP学习
- 首先找出一些学习的链接
2.Pop 学习
-
学习pop的一些属性 主要动画
- POPBasicAnimation
- toValue
- fromValue
- beginTime = CACurrentMediaTime() + 1;
- timingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- property:自定义的时候需要用到
- POPBasicAnimation
/* 位移 */
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];
```