pop框架是Google推出的用于处理iOS动画的一个特别好用的框架
如果对这个框架没有了解的,可与去看一下官方提供的资料
这次我主要使用pop框架实现一个简单的弹簧效果
对应的demo为
Demo
实现文件名称是ThirdViewController
最终的效果图为:
pop框架实现弹簧动画.gif
首先,定义一个UIView属性
@property (nonatomic, strong) UIView *myView;
将其添加到view上
- (UIView *)myView {
if (_myView) {
return _myView;
}
_myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
_myView.backgroundColor = [UIColor yellowColor];
return _myView;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"pop框架实现弹簧动画";
self.navigationController.navigationBar.translucent = NO;
self.view.backgroundColor = [UIColor whiteColor];
// [self.view addSubview:self.tableView];
self.myView.center = self.view.center;
[self.view addSubview:self.myView];
}
在点击屏幕时,实现相应的代码效果
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
//初始化弹簧动画
POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerBounds];
springAnimation.springSpeed = 0;//设置动画的速度
springAnimation.springBounciness = 10;//设置弹性大小
springAnimation.dynamicsFriction = 10;//设置阻力的大小
springAnimation.dynamicsTension = 100;//设置张力的大小
if (self.myView.frame.size.width == 100) {
springAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 50, 50)];
} else {
springAnimation.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 100, 100)];
}
//添加动画
[self.myView.layer pop_addAnimation:springAnimation forKey:@"animation"];
}
总结
最终的效果图
Demo地址
网友评论