爱程序网

POP-一个点击带有放大还原的动画效果

来源: 阅读:

原理

监听屏幕的点击事件

- (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"];
    };
}

效果图

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助