美文网首页
ios动画效果四:使用Pop框架实现弹簧效果

ios动画效果四:使用Pop框架实现弹簧效果

作者: 落叶兮兮 | 来源:发表于2020-11-07 00:03 被阅读0次

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

    总结

    最终的效果图

    pop框架实现弹簧动画.gif
    Demo地址

    相关文章

      网友评论

          本文标题:ios动画效果四:使用Pop框架实现弹簧效果

          本文链接:https://www.haomeiwen.com/subject/gcbtbktx.html