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

    效果图

  • 相关阅读:
    pycharm优化
    Shell基本命令
    Django项目订单接入支付宝
    浏览器的同源策略及跨域解决方案
    python datetime时区转换
    Django contenttypes 组件
    MySQL使用版本号实现乐观锁
    MySQL DDL Demo
    Redis分布式锁
    Zookeeper分布式锁
  • 原文地址:https://www.cnblogs.com/hxwj/p/5033600.html
Copyright © 2020-2023  润新知