效果图:
#import "ViewController.h" #import <POP.h>@interface ViewController ()@property (nonatomic, weak) UIView *testView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor = [UIColor blackColor];// 初始化测试控件UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];testView.center = self.view.center;testView.backgroundColor = [UIColor redColor];self.testView = testView;[self.view addSubview:testView]; }- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {// 初始化弹簧动画POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerBounds];springAnimation.springSpeed = 0; // 设置动画速度(常用)springAnimation.springBounciness = 20; // 设置弹性大小(常用)// springAnimation.dynamicsFriction = 10; // 设置阻止弹性的阻力(选用)// springAnimation.dynamicsTension = 100; // 设置弹性的张力(可以理解为每次变大的程度, 选用)if (self.testView.frame.size.width == 100) {springAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 50, 50)];} else {springAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 100, 100)];}// 添加动画 [self.testView.layer pop_addAnimation:springAnimation forKey:nil]; }@end
github:https://github.com/RinpeChen/POPSpringAnimationDemo