博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类似心跳的动画缩放
阅读量:7241 次
发布时间:2019-06-29

本文共 1728 字,大约阅读时间需要 5 分钟。

hot3.png

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    UIView  *view =[[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

    view.backgroundColor =[UIColor redColor];

    [self.view addSubview:view];

    [self heartbeatView:view duration:100];

}

-(void)heartbeatView:(UIView *)view duration:(CGFloat)fDuration

{

    [[self class] heartbeatView:view duration:fDuration maxSize:1.4f durationPerBeat:0.5f];

}

+(void)heartbeatView:(UIView *)view duration:(CGFloat)fDuration maxSize:(CGFloat)fMaxSize durationPerBeat:(CGFloat)fDurationPerBeat

{

    if (view && (fDurationPerBeat > 0.1f))

    {

        CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];

        

        CATransform3D scale1 = CATransform3DMakeScale(0.8, 0.8, 1);

        CATransform3D scale2 = CATransform3DMakeScale(fMaxSize, fMaxSize, 1);

        CATransform3D scale3 = CATransform3DMakeScale(fMaxSize - 0.3f, fMaxSize - 0.3f, 1);

        CATransform3D scale4 = CATransform3DMakeScale(1.0, 1.0, 1);

        

        NSArray *frameValues = [NSArray arrayWithObjects:

                                [NSValue valueWithCATransform3D:scale1],

                                [NSValue valueWithCATransform3D:scale2],

                                [NSValue valueWithCATransform3D:scale3],

                                [NSValue valueWithCATransform3D:scale4],

                                nil];

        

        [animation setValues:frameValues];

        

        NSArray *frameTimes = [NSArray arrayWithObjects:

                               [NSNumber numberWithFloat:0.05],

                               [NSNumber numberWithFloat:0.2],

                               [NSNumber numberWithFloat:0.6],

                               [NSNumber numberWithFloat:1.0],

                               nil];

        [animation setKeyTimes:frameTimes];

        

        animation.fillMode = kCAFillModeForwards;

        animation.duration = fDurationPerBeat;

        animation.repeatCount = fDuration/fDurationPerBeat;

        

        [view.layer addAnimation:animation forKey:@"heartbeatView"];

    }else{}

}

转载于:https://my.oschina.net/zhuzhu1223/blog/409027

你可能感兴趣的文章
我们的开源项目-2013年度开源社区线下聚会《JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用》PPT分享...
查看>>
Java 8 新特性(1) - Lambda表达式
查看>>
curl vs Wget
查看>>
安全应急响应
查看>>
maven_常用命令大全
查看>>
Android四大组件BroadcastReceiver
查看>>
apache ab
查看>>
Java解析html之JSOUP(译)-jsoup Cookbook(1)
查看>>
Java获取url地址图片
查看>>
spring maven cxf jackson restful
查看>>
Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)
查看>>
理解etcd集群
查看>>
char类型是否有符号与不同编译环境相关
查看>>
程序员的九阳真经
查看>>
mysql 主键只有一个,auto_increment 必须是键 Error Code: 1075
查看>>
移动端切图备忘(别人的)
查看>>
Ubuntu下安装配置VNC远程工具
查看>>
那次才是最大的转折
查看>>
学习gitbook发布自己的电子书
查看>>
Android Cordova微信插件动态包名处理
查看>>