文档章节

类似心跳的动画缩放

风了个1
 风了个1
发布于 2015/05/02 11:16
字数 164
阅读 11
收藏 0

- (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{}

}


© 著作权归作者所有

风了个1
粉丝 3
博文 76
码字总数 16670
作品 0
杭州
程序员
私信 提问
PS制作心跳二维码动画 学会后能增加粉丝关注率哦

现在二维码到处都是,若想用户关注到你的二维码,必须搞点新花样才行哦,早期我们分享过「设计灵感:二维码也玩创意」一文,里面有很多不错的设计创意,然而有没有想过自己他创建一个可以长按...

commyleung
2018/03/16
0
0
【Animations】使用缩放动画放大视图(7)

原文 概要 本课程演示如何执行触摸缩放动画,这对诸如照片库等应用程序可以将视图从缩略图动画化为充满屏幕的全尺寸图像。 以下是触摸缩放动画看起来像展开图像缩略图以填充屏幕: 视频地址:...

lichong951
2018/05/28
0
0
iOS:重识Transform和frame

关于frame frame是一个复合属性,由center、bounds和transform共同计算而来。 transform改变,frame会受到影响,但是center和bounds不会受到影响。也就是你使用transform来缩放,bounds是不会...

Find1991
2017/12/21
0
0
吸入动画如何实现下述问题

首先有一个类似的欢迎引导界面(里面有一个属性动画(其中有旋转/缩放/透明度渐变)),完了后就跳转下一个界面,现在需要把这个跳转 做成一个吸入动画,因为第二个界面有一个围绕中心旋转的...

Lance丿夜
2015/12/04
156
2
图片滚动/放大/拖动/标记 jQuery 插件 - ZoomMarker

一款用于图片滚动放大拖动,且可以添加标记的jQuery插件 在项目中需要实现类似地图应用那样的,具有鼠标滚动缩放和拖动功能的插件效果,且可以添加具有回调功能的标记点。在网上找了一圈都没...

yeye0922
02/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
昨天
3
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部