用POP动画引擎实现弹簧动画(POPSpringAnimation)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用POP动画引擎实现弹簧动画(POPSpringAnimation)相关的知识,希望对你有一定的参考价值。

效果图:

技术分享

#import "ViewController.h"
#import <POP.h>

@interface ViewController ()

@property (nonatomic, weak) UIView *testView;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor blackColor];
    
    // 初始化测试控件
    UIView *testView         = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
    testView.center          = self.view.center;
    testView.backgroundColor = [UIColor redColor];
    self.testView            = testView;
    [self.view addSubview:testView];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    // 初始化弹簧动画
    POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerBounds];
    springAnimation.springSpeed         = 0;                    // 设置动画速度(常用)
    springAnimation.springBounciness    = 20;                   // 设置弹性大小(常用)
    // springAnimation.dynamicsFriction    = 10;                // 设置阻止弹性的阻力(选用)
    // springAnimation.dynamicsTension     = 100;               // 设置弹性的张力(可以理解为每次变大的程度, 选用)
    if (self.testView.frame.size.width == 100) {
        springAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 50, 50)];
    } else {
        springAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 100, 100)];
    }
    
    // 添加动画
    [self.testView.layer pop_addAnimation:springAnimation forKey:nil];
}

@end

github:https://github.com/RinpeChen/POPSpringAnimationDemo

以上是关于用POP动画引擎实现弹簧动画(POPSpringAnimation)的主要内容,如果未能解决你的问题,请参考以下文章

Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎

POP动画引擎中Layer与CALayer的一点区别

使用 Facebook开源动画库 POP 实现真实衰减动画

《Motion Design for iOS》(十八)

具有弹簧效果的旋转动画

使用SpringAnimation实现弹簧联动