- 首先找出一些學(xué)習(xí)的鏈接
2.Pop 學(xué)習(xí)
-
學(xué)習(xí)pop的一些屬性 主要?jiǎng)赢?huà)
- POPBasicAnimation
- toValue
- fromValue
- beginTime = CACurrentMediaTime() + 1;
- timingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- property:自定義的時(shí)候需要用到
- POPBasicAnimation
/* 位移 */
POPBasicAnimation * anim = [POPBasicAnimation animationWithPropertyNamed:kPOPLayerPositionY];
anim.toValue = @(self.testView.frame.origin.y + 250);
anim.beginTime = CACurrentMediaTime() + 1;
anim.duration = 1;
/
* kCAMediaTimingFunctionLinear //勻速
kCAMediaTimingFunctionEaseIn//緩慢進(jìn)入
kCAMediaTimingFunctionEaseOut//緩慢出來(lái)
kCAMediaTimingFunctionEaseInEaseOut//緩慢進(jìn)入 再 緩慢出來(lái)
**/
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] 彈力 越大則震動(dòng)幅度越大
- springBounciness:[0-20] 速度 越大則動(dòng)畫(huà)結(jié)束越快
POPSpringAnimation * springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerPositionX];
springAnimation.toValue = @(self.testView.frame.origin.x + 200);
springAnimation.beginTime = CACurrentMediaTime() + 1;
/*
* springBounciness:4.0 //[0-20] 彈力 越大則震動(dòng)幅度越大
springSpeed :12.0 //[0-20] 速度 越大則動(dòng)畫(huà)結(jié)束越快
**/
springAnimation.springSpeed = 20;
// springAnimation.springBounciness = 20;
[self.testView pop_addAnimation:springAnimation forKey:nil];
- POPDecayAnimation(衰減)
- velocity:開(kāi)始速度
```
POPDecayAnimation * anDecay = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPositionX];
anDecay.velocity = @(1000);
anDecay.beginTime = CACurrentMediaTime() + 1;
[self.testView pop_addAnimation:anDecay forKey:nil];
```