zoukankan      html  css  js  c++  java
  • Pop框架简述

    Facebook发布了Paper之后,进一步开源了其背后的动画引擎Pop,此框架并不满足于苹果自身的动画单调性,致力于给用户一种逼真的动画效果,可以减少用户对于苹果原生Core Animation 复杂的运算,并且Pop提供的API和苹果原生的API用法类似,让开发者更容易接受。使用pop框架进行动画展示会让你的App看起来更加有生气,感觉像是活了一样。

    它主要包含的动画:

      POPSpringAnimation 有弹性效果的动画类

          POPBasicAnimation基本动画

          POPDecayAnimation衰减动画类

          POPCustomAnimation可以自定义动画的类

    个人使用第一种动画比较多,做了个小Demo,仅做参考。

    @interface ViewController ()
    
    @property (nonatomic,strong) UIButton *button;
        
        @property (nonatomic,assign) BOOL isSelected;
        
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        [self.view addSubview:self.button ];
        [self.button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
        [self.button setBackgroundImage:[UIImage imageNamed:@"deleteButtonNormal"] forState:UIControlStateNormal];
        self.button.backgroundColor = [UIColor orangeColor];
        
        self.isSelected = YES;
    }
    
    //懒加载
    - (UIButton *)button{
        if (_button == nil) {
            _button  = [[UIButton alloc]initWithFrame:CGRectMake(50, 70, 26, 26)];
        }
        return  _button;
    }
        
    - (void)buttonClick{
        POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerSize];
        
        if (self.isSelected == YES) {
            [_button setBackgroundImage:[UIImage imageNamed:@"deleteButtonSelected"] forState:UIControlStateNormal];
            self.isSelected = NO;
            springAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(28, 28)];
        }else{
            [_button setBackgroundImage:[UIImage imageNamed:@"deleteButtonNormal"] forState:UIControlStateNormal];
            self.isSelected = YES;
            springAnimation.toValue  = [NSValue valueWithCGSize:CGSizeMake(26, 26)];
        }
        //弹性值
        springAnimation.springBounciness = 30;
        //弹性速度
        springAnimation.springSpeed = 20;
        
        [self.button.layer pop_addAnimation:springAnimation forKey:@"changesize"];
    }

    这是一个很简单的展示,作为学习pop框架的开始。

  • 相关阅读:
    node-express脚手架生成的项目中实现浏览器缓存
    three.js通过canvas实现球体世界平面地图
    激光原理与技术(第二版)课后答案 阎吉祥 版 高等教育出版社 课后习题答案 解析
    Spring2.5注释驱动与基于注释的MVC
    iBatis2学习笔记:入参和返回值的问题
    重写了java.util.Date类中一些过时的方法
    Java日期格式化及其使用例子收集
    深入研究java.lang.ThreadLocal类
    Java:对象的强、软、弱和虚引用
    Java 反射机制深入研究
  • 原文地址:https://www.cnblogs.com/losedMemory/p/6033891.html
Copyright © 2011-2022 走看看