facebook-pop开源动画框架

本文对比了pop与CoreAnimation的特点,pop支持任意对象动画且基于CADisplayLink,而CoreAnimation仅支持图层动画且不直接修改对象属性。通过示例展示了如何使用pop实现弹簧效果动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地址:https://github.com/facebook/pop
pop和Core Animation的区别
1.Core Animation动画只能添加到layer上
2.pop的动画能添加到任何对象
3.pop的底层并非基于Core Animation,是基于CADisplayLink
4.Core Animation的动画仅仅是表象,并不会真正修改对象的frame\size等值
5.pop动画实时修改对象的属性,真正地修改了对象的属性

示例1:给sloganView 对象做改变中心点的弹簧效果动画

    POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
    anim.springBounciness = 20;
    anim.fromValue = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
    anim.toValue = [NSValue valueWithCGPoint:CGPointMake(200,200)];

    [self.sloganView pop_addAnimation:anim forKey:nil];

示例2:给sloganView做Y轴方向上的弹簧动画


    POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerPositionY];
    anim.beginTime = CACurrentMediaTime() + 1.0;
    anim.springBounciness = 20;
    anim.fromValue = @(self.sloganView.layer.position.y);
    anim.toValue = @(300);
    anim.completionBlock = ^(POPAnimation *anim, BOOL finished){
        NSLog(@"动画结束");
    };

    [self.sloganView.layer pop_addAnimation:anim forKey:nil];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值