原理
监听屏幕的点击事件
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
- (void)touchesCancelled:(nullable NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
动画
pop动画,需要pop框架
两个动画一个放大,一个还原
kPOPViewScaleXY:放大宽高
代码
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { POPSpringAnimation *scaleAnimation = [POPSpringAnimation animation]; scaleAnimation.property = [POPAnimatableProperty propertyWithName:kPOPViewScaleXY];//宽高改变 scaleAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(1.3, 1.3)];//1.3倍 [self pop_addAnimation:scaleAnimation forKey:@"scaleAnimationKey"];//执行动画 scaleAnimation.completionBlock = ^(POPAnimation *animation,BOOL finish) { //动画回调 POPSpringAnimation *scaleAnimation = [POPSpringAnimation animation]; scaleAnimation.springBounciness = 16; // value between 0-20 scaleAnimation.springSpeed = 14; // value between 0-20 scaleAnimation.property = [POPAnimatableProperty propertyWithName:kPOPViewScaleXY]; scaleAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(1.0, 1.0)]; [self pop_addAnimation:scaleAnimation forKey:@"scaleAnimationKey"]; }; }
效果图