文档章节

核心动画CoreAnimation

马尔代夫的沙滩
 马尔代夫的沙滩
发布于 2016/04/08 00:11
字数 788
阅读 48
收藏 0

核心动画CoreAnimation

基本动画:CABasicAnimation

帧动画:CAKeyframeAnimation

组动画:CAAnimationGroup

CoreAnimation时直接作用在CALayer上的,并非UIView。

CABasicAnimation:平移,旋转,缩放

CAKeyframeAnimation:按路径移动

若想将关键帧动画中的路径绘制出来,创建一个继承自UIView的子类,与self.view关联,在子类UIView中的drawRect方法中绘制。

一、基本动画的创建步骤:

创建基本动画对象,设置动画的属性(value,duration),将动画添加到要作用layer。

动画完成后默认会回到初始位置,此时若想layer定在动画完成时的位置,需要设置动画完成后不删除且修改fillMode为kCAFillModeForwards。

注意:

如果fillMode=kCAFillModeForwards和removedOnCompletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的初始值,并没有真正被改变。比如,CALayer的position初始值为(0,0),CABasicAnimation的fromValue为(10,10),toValue为(100,100),虽然动画执行完毕后图层保持在(100,100)这个位置,实质上图层的position还是为(0,0).

BasicAnimation:

fromValue:

toValue:

byValue:

指定keyPath的字符串内容@“transform.translation”、@“transform.scale”、@“transform.rotation”与value属性可以通过识别value值的类型,比如CGPoint、NSNumber、弧度来自动做出平移、缩放和旋转的动画。

二、帧动画的创建步骤:

创建帧动画对象,设置帧动画values和duration、repeatCount等属性,添加帧动画到layer上。

CALayer的属性:

1.若想得到带圆环的图片

可以设置图片所在layer的边框(border的width、color、cornerRadius),设置边框圆角并进行裁剪(maskToBounds)便可以得到带圆环的图片。

2.设置背景投影阴影

设置阴影颜色、偏移量、透明度。阴影模糊度shadowRadius。

3.若需要设置layer四周阴影,绘制阴影路径

阴影默认在右下角,左上无阴影,若想四边阴影宽度相同,设置x,y各自为多余宽度的一半。

禁用隐式动画步骤:

开启一个显式CATransaction事务

修改事务属性

提交事务

CADisplayLink 与 NSTimer 有什么不同?


iOS设备的屏幕刷新频率是固定的,CADisplayLink在正常情况下会在每次刷新结束都被调用,精确度相当高。


NSTimer的精确度就显得低了点,比如NSTimer的触发时间到的时候,runloop如果在阻塞状态,触发时间就会推迟到下一个runloop周期。并且 NSTimer新增了tolerance属性,让用户可以设置可以容忍的触发的时间的延迟范围。


CADisplayLink使用场合相对专一,适合做UI的不停重绘,比如自定义动画引擎或者视频播放的渲染。


NSTimer的使用范围要广泛的多,各种需要单次或者循环定时处理的任务都可以使用。

从系统获取时间步骤:::

//获取当前日历

    NSCalendar *currentCal = [NSCalendar currentCalendar];

    //获取当前系统时间

    NSDate *currentDate = [NSDate date];

    //从当前时间中获取秒数

    NSDateComponents * components = [currentCal components:NSCalendarUnitMinute fromDate:currentDate];

    NSInteger minute = components.minute;


© 著作权归作者所有

上一篇: CALayer
马尔代夫的沙滩
粉丝 11
博文 53
码字总数 20296
作品 0
海淀
程序员
私信 提问
iOS动画开发之四——核心动画编程(CoreAnimation)

iOS动画开发之四——核心动画编程(CoreAnimation) 一、引言 前几篇博客详细介绍了有关UIView层的动画使用与相关的效果,然而这些动画是UIKit为我们封装好的核心动画层的方法,通过这些方法,...

珲少
2015/07/28
1K
0
Neubla3中的骨骼动画: CoreAnimation子系统

最早的一个设计是把动作代码分成两个子系统. CoreAnimation作为低层系统, 只为更复杂的高层动作系统提供简单而又高性能的”砖瓦”. 高层Animation子系统以CoreAnimation为基础, 提供了像抽像...

长平狐
2012/11/12
128
0
CoreAnimation应用和使用方法

iPhone应用程序之CoreAnimation应用和使用方法是本文要介绍的内容,CoreAnimation是苹果对用户界面动画的封装,它的framework是QuartzCore.framework。使用时需要将这个库添加的工程,我们一起...

于赟
2012/11/18
504
0
iOS Animation创建及使用

iOS 实现的基本动画 头尾式动画 2.block动画的方法 iOS显示关键帧动画 关键帧动画 动画的创建和使用 第一种:UIView 代码块调用 第二种:UIView [begin commit]模式 第三种:使用Core Animat...

奋拓达
2018/05/23
0
0
基于 CoreAnimation 的动画库 - ThinkVerb

English Introduction ThinkVerb ThinkVerb 是一组基于 CoreAnimation 的 API,相比与直接使用 CoreAnimation,ThinkVerb 通过链式语法进行编程,并且自管理 CAAnimation,你无需自己手动创建...

匿名
01/31
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

创龙基于TI TMS320C6748(定点/浮点DSP C674x) + Xilinx Spartan-6 FPGA处理器规格书

由广州创龙自主研发的SOM-TL6748F核心板是一款定点/浮点DSP C674x + Xilinx Spartan-6 FPGA工业级双核核心板,66mm*38.6mm,功耗小、成本低、性价比高。采用沉金无铅工艺的8层板设计,专业的...

Tronlong创龙
29分钟前
6
0
DataV教你如何给可视化应用一键美颜

如果你平时经常接触数据统计、数据展示和决策分析,相信你对DataV一定有所了解。DataV作为一站式实时数据可视化应用搭建工具,拥有图形化、拖拽式、近乎零代码的使用体验,能帮助大家轻松搭建...

阿里云官方博客
31分钟前
6
0
Apache Flink 1.9.0版本新功能介绍

摘要:Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。目前,Apache Flink 1.9.0版本已经...

大涛学长
32分钟前
7
0
网站变成灰色CSS代码

为方便站点哀悼,特提供css滤镜代码,以表哀悼。以下为全站CSS代码。 [css]html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }[/css] 使 用方法:这段代码可以变网...

前端老手
37分钟前
4
0
bootstrap4

临时接手个bootstrap4的项目 ,作下笔记 一.栅格系统 相对于原来的bs3,bs4具有了范围更大的适应区间.在过去的bs3中的xs sm md lg 中,bs4又增加了一个xl这个区间,为超大屏幕做出了适应。  ...

东东笔记
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部