第二十九篇、CoreAnimation的使用

使用的的三个步骤

1.初始化演员

2.设置好剧情

3.播放

附录:一个把商品添加到购物车的抛物线动画

coreAnimation

    // 1.初始化演员
    CALayer *layer = [[CALayer alloc]init];
    layer.bounds = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
    layer.position = CGPointMake(160, 160);
    // 设置内容
    //layer.contents = (id)_imageViewBtn.imageView.image.CGImage
    [self.view.layer addSublayer:layer];

    // 2.设定剧情
    // 贝尔曲线
    UIBezierPath *movePath = [UIBezierPath bezierPath];
    [movePath moveToPoint:layer.position];
    [movePath addQuadCurveToPoint:CGPointMake(319, [UIScreen mainScreen].bounds.size.height - 45 - 20)
                     controlPoint:CGPointMake(0,0)];

    // 关键帧
    CAKeyframeAnimation *positionnAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    positionnAnimation.path = movePath.CGPath;
    positionnAnimation.removedOnCompletion = YES;

    // 基本动画(缩放)
    CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.sale"];
    scaleAnimation.fromValue = @1;
    scaleAnimation.toValue = @.025;
    scaleAnimation.duration = .8f;
    scaleAnimation.autoreverses = NO;
    scaleAnimation.repeatCount = 1;
    // 防止动画闪烁
    scaleAnimation.removedOnCompletion = NO;
    scaleAnimation.fillMode = kCAFillModeForwards;

    scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    // 组动画
    CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
    animationGroup.duration = 0.8f;
    animationGroup.autoreverses = NO;
    animationGroup.repeatCount = 1;
    animationGroup.repeatDuration = NO;
    animationGroup.fillMode = kCAFillModeForwards;
    [animationGroup setAnimations:[NSArray arrayWithObjects:positionnAnimation,scaleAnimation, nil]];

    // 3.播放
    [layer addAnimation:animationGroup forKey:nil];
时间: 2024-10-15 12:05:54

第二十九篇、CoreAnimation的使用的相关文章

第二十九篇:浅谈一线经理的管理策略

今天看到一条朋友圈中的内容:好单位与坏单位 文中列举了好与坏的各种分别: 好公司: 牛人很多,比你更谦卑,更努力,你不努力都不好意思呆下去! 员工都有目标有理想有希望 每个人脸上都写着"价值与目标" 坏公司: 扯皮,推诿,不承担,办事效率低,发牢骚的人很多, 不仅不干活,而且党同伐异,想把干活的人全干掉! 员工以混日子,不承担责任,得过且过去生存. 每个人的脸上都写着"自我与个性" 具体到一个公司,都是好公司与坏公司的结合体. 刚刚起步的STARTUP,大家都是志同

我的第二十九篇博客---正则进阶

re.match() 从头找一个re.search() 找一个re.findall() 找所有返回一个列表,没有就是空列表re.findall('\d','chuan1zhi2') 结果为['1','2'] re.sub() 替换 re.sub('\d','_','chuan1zhi2') 结果为['chuan_zhi_'] re.compile(编译)返回一个模型p,具有和re一样的方法,但是传递的参数不同匹配模式需要传到compile中如果不使用re.S参数,则只在每一行内进行匹配,如果一行

第二十九篇:使用SOUI的SMCListView控件

列表控件是客户端应用最常用的控件之一.列表控件通常只负责显示数据,最多通知一下APP列表行的选中状态变化. 现在的UI经常要求程序猿在列表控件里不光显示内容,还要能和用户交互,显示动画等等,传统的列表控件对于这样的需求基本是无能为力了. Android开发中很多界面都直接采用ListView实现,ListView中每一个Item中都可以容纳其它控件,这样的设计使得在表项中的交互和在主面板上交互一样简单. 虽然在列表项中容纳其它控件并不是什么新的思想,考虑到列表中的数据量是不确定的,如果给每一个表

第二十九篇:USER MODE DLL开发过程中的调试技巧心得分享

最近由于项目需要,被老板安排开发一个WINDOWS USER MODE DLL, 即WINDOWS用户模式下的动态链接库. 写代码,实现具体的功能这类初等工作,对于大多数软件开发工程师来讲,只是时间与工作量上的问题,具体的WINDOWS DLL的知识点,本人参考了Jeffrey Richter的<WINDOWS核心编程>中的DLL几章,不再熬述. 这里谈一下关于USER MODE DLL在调试过程中所涉及到的一些知识点,以及它们彼此之间的关系: 1. DebugBreak / int 3; 2

小刘同学的第二十九篇博文

很遗憾今天没有干货分享出来,不过明天就考试了,衷心希望SQL Server数据库可以过啊!!! 白天状态都不怎么好,也不知道是快考试了还是怎么,反正都不是很好. 下午自己找了很多鸡汤读,还打印出来了,希望能对自己有点帮助吧. 发现跟录播真是会漏掉很多知识点啊,上次那个小球随机移动的,老师给了一段很风骚的代码,大家可以看看. <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

开始写游戏 --- 第二十九篇

今天: 1.修复昨天物品显示组件文字超出的问题 2.物品显示组件新增拖拽.双击关闭功能 3.退出战斗.显示战利品按钮 4.物品奖励添加 领取.丢弃 菜单功能 5.添加UI窗口.修复UI窗口数据和人物属性不一致的问题 上图: 1.修复昨天物品显示组件文字超出的问题 { 昨天的BUG图: 现在已经修复: 主要是多个富文本改成了一个富文本的形式,之前的是这样的: 现在弄成了这样: 然后我要在代码里编辑文本格式: } 2.物品显示组件新增拖拽.双击关闭功能 { 效果: 代码: } 3.退出战斗.显示战利

NeHe OpenGL教程 第二十九课:Blt函数

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第二十九课:Blt函数 Blitter 函数: 类似于DirectDraw的blit函数,过时的技术,我们有实现了它.它非常的简单,就是把一块纹理贴到另一块纹理上. 这篇文章是有Andreas Lffler所写的,它写了一份原始的教

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

Python之路【第十九篇】:爬虫

Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. Requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. import