CoreAnimation的使用】的更多相关文章

以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 本文主要从CoreAnimation的Layer角度来讲解动画,我想从CALayer的角度更好理解,后续还会有第二篇从UIKIt的UIView角度来讲解动画,第三篇讲解UIDynamicAnimati…
如果你想在一个图层中显示文字,完全可以借助图层代理直接将Core Graphics写入图层的内容(这就是UILabel的精髓).如果雨果寄宿于图层的视图,直接在图层上操作,其实相当繁琐.你要为每一个显示文字的图层创建一个能像图层代理一样工作的类,还要在逻辑上判断哪个图层需要显示哪个字符串,更别提还要记录不同的字体,颜色等等的属性. 万幸的是这是都是多余的,在CoreAnimation为我们提供了一个CALayer的子类CATextLayer,它以图层的形式包含了UILabel几乎所有的绘制特效,…
在之前的图层树中我们知道,可以使用CALayer对象创建一些有背景颜色的图层,其实使用CALayer,不仅可以利用其展示背景颜色,还可以展示图片.而这些展示内容,其实就是CALayer的寄宿图.这一节我们将来探索下CALayer寄宿图. 在CALayer中有一个属性叫做contents,这个属性的类型为id,意味着它可以是任何类型的对象,也就意味这即使你给contents属性赋任意对象值,您的项目都可以编译通过.然而,编译通过不代表使用正确,如果您给contents赋的不是CGImage对象,您…
CoreAnimation :在字面意思为“核心动画”,但是如果您认为它仅仅是一个动画框架,那可能就要错过一些经典功能了.动画,只是CoreAnimation功能的一小部分,毕竟人家的源头是一个叫做Layer Kit的库演变而来,和动画无关. CoreAnimation作为一个复合引擎,将不同的视图层组合在屏幕中,并且存储在图层树中,向我们展示了所有屏幕上的一切.而图层树又是什么呢?下面来探讨一下第一个概念图层树: 图层树:如果您开发过iOS/ipad应用程序,并且使用过Xcode中提供的一个如…
一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: duration:持续时间 repeatCount:重复次数 repeatDuration:重复时间 timingFunction:运行节奏 keyPath:指定CALayer的某个属性为keyPath,并对CALayer的这个属性值进行修改,达到动画效果 fillMode:决定当前对象在非active时间…
Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 1.常见方法: + (void)setAnimationDelegate:(id)delegate——设置动画代理对象: + (void)setAnimationWillStartSelector:(S…
一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了:UIKit动画有两种写法:它不仅可以针对视图还可以针对其它控件: 1:第一种写法是利用属性,结合beginAnimations.commitAnimations -(void)animationOfUIKit { UIView *redView=[[UIView alloc]initWithFram…
使用CoreAnimation一般分为三个部分:1.创建执行动画的CALayer 2.创建动画 3.CALayer 添加Animation CoreAnimation是以锚点为基础. CoreAnimation的继承关系: CAAnimation 属性 描述 timingFunction 时间函数 kCAMediaTimingFunctionLinear线性 kCAMediaTimingFunctionEaseIn淡入 kCAMediaTimingFunctionEaseOut淡出 kCAMed…
核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程. 核心动画继承结构 核心动画继承结构 注意:核心动画中的虚类不能使用,而应该使用他们子类中的实类. Core Animation的使用步骤 如果是Xcode6之前的版本,要导入<QuartzCore/QuartzCore.h>框架(并不存…
http://blog.treney.com/index.php/archives/CoreAnimation.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io…
使用的的三个步骤 1.初始化演员 2.设置好剧情 3.播放 主要类: CALayer // 绘图部分 CABaseAnimation // 基本动画(缩放,移动) CAKeyframeAnimation // 关键帧动画(设置动画执行的路径,常借助贝塞尔曲线) CAAnimationGroup // 动画组(将动画添加到组,并设置Delegate监听动画结束) 常见的keypath transform.scale = 比例轉換 transform.scale.x = 闊的比例轉換 transfo…
CoreAnimation 1.CABasicAnimation // position CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"position"]; // boundsCABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"bounds.size"]; // opacityCABasicAnimation…
iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer 二.CAGradientLayer 三.CAReplicatorLayer 四.CAShapeLayer 五.CATextLayer iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer CAEmitterLayer是CoreAnimation框架中的粒子发射层,在以前的一片博客中有详细的介绍和范例,这里不再重复,地址如下: 粒…
iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 众所周知,绚丽动画效果是iOS系统的一大特点,通过UIView层封装的动画,基本已经可以满足我们应用开发的所有需求,但若需要更加自由的控制动画的展示,我们就需要使用CoreAnimation框架中的…
iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二.几种系统的Layer类 1.CAEmitterLayer 2.CAGradientLayer 3.CAEAGLLayer 4.CAReplicatorLayer 5.CAScrollLayer 6.CAShapeLayer 7.CATextLayer 8.CATiledLayer 9.CATrans…
CoreAnimation基本介绍: CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnimation基本上是LayerAnimation CoreAnimation分类: CoreAnimation作用: CoreAnimation CALayer基本介绍 CALayer的常用属性 CABasicAnimation CAKeyframeAnimation CAAnimationGroup…
CoreAnimation 开篇 CoreAnimation系列博客是我对学习CoreAnimation的知识整理,博客排列顺序以及知识讲解存在欠缺望见谅. 博客的编写是在工作之余,尽量保证CoreAnimation系列博客在6月初全部编写完成,感兴趣的同学可以关注一下. 为了保证学习CoreAnimation的质量我会在每个篇幅结束后附上GitHub地址以供查看源码. CoreAnimation简介 CoreAnimation将其翻译为中文则是"核心动画"(Core:核心,Anima…
#CoreAnimation 寄宿图 寄宿图:图层中所包含的图 by:旭宝爱吃鱼 针对于寄宿图我在这里只讨论contents属性以及Custom Drawing. contents content:内容 CALayer的contents属性是一个id类型. @property(nullable, strong) id contents; 因此,可以将任何类型的对象赋值给contents,但是如果将非CGImage类型的对象赋值给contents将会的到一个空白页.contents之所以会存在这种…
CoreAnimation 图层几何学 博客园MakeDown支持不佳,如有需要请进GitHub 图层几何所讲主要是有关图层的位置,尺寸等几何类属性. 布局 在UIView中与位置,尺寸有关的属性有 frame bounds center在此不多赘述,在CALayer中同样有与其相对应的属性 frame bounds position 需要注意的是 center与position 虽然字面表达不一样,但是其功能是一致的,为了更加清晰的展示以上内容,我在故事板中创建一个有色UIView. 图片一…
CoreAnimation 视觉效果 CoreAnimation 目录 博客园MakeDown支持不佳,如有需要请进GitHub iPhone手机的视觉效果是十分优秀的,因此作为iOS工程师一定要对其视觉效果的处理有一定的了解.本编博客主要内容如下. 圆角 图层边框 阴影 图层蒙板 首先我们先在主视图上添加两个普通的视图,稍后对其进行相应的视觉效果处理. 图片一 圆角 圆角是iOS的独特之处,其让我们感觉我们所看到的一切并不是那么的生硬.我将让绿色视图产生一个合适的圆角. 图片二 绿色视图的圆角…
CoreAnimation 目录 CoreAnimation 开篇 CoreAnimation 寄宿图 CoreAnimation 图层几何学 CoreAnimation 视觉效果…
CoreAnimation 变换 CoreAnimation 目录 博客园MakeDown支持不佳,如有需要请进GitHub 本片博客主要内容: 仿射变换 - CGAffineTransform 3D变换 - CATransform3D 仿射变换 - CGAffineTransform CGAffineTransform 是用于二维空间的旋转,缩放和平移的属性.首先展示一个简单的样例,将图片顺时针旋转45°⬇️. 图片一 CGAffineTransform transform = CGAffin…
(个人原创,转载请注明出处 http://www.cnblogs.com/pretty-guy/p/7460334.html) 在iOS中实现进度条通常都是通过不停的设置progress来完成的,这样的进度条适用于网络加载(上传下载文件.图片等).但是对于录制视频这样的需求的话,如果是按照每秒来设置进度的话,显得有点麻烦,于是我就想直接用CoreAnimation来按时间做动画,只要设置最大时间,其他的就不用管了,然后在视频暂停与继续录制时,对动画进行暂停和恢复即可.录制视频的效果如下: 你可以…
最近调查的一个bug和内存泄露都和CoreAnimation有关,因此谈一下使用CoreAnimation需要注意的几个问题 CAAnimation的delegate属性是retain的,这个设计确实比较坑人,完全违背了"一致性"原则,产品里面的有个内存泄露就和这个有关. CALayer的addAnimation:forKey方法会对第一个参数,也即animation对象进行copy:这种设计的一个结果是,如果你同时添加了多个animation,在CAAnimation的delegat…
使用Instruments中的CoreAnimation分析动画 1. 打开Instruments中的CoreAnimation 2. 运行前的准备工作 要注意勾选以下选项,便于调试 3. 运行与调试 一些需要注意的细节: 1. 如果屏幕中,有超过50%的区域由半透明的layer叠加组成,如果执行滑动操作的话,很有可能导致卡顿. 2. 加载的图片尽量不要执行缩放操作,缩放会消耗额外的性能.比方说,你加载网络上的图片,就尽量加载图片大小尺寸的图片,而不要缩放较大的图片. 参考资料 http://o…
pop是Facebook在开源的一款动画引擎,看下其官方的介绍: Pop是一款在iOS.tvOS和OS X平台通用的可扩展动画引擎.它在基本静态动画的基础上,增加了弹性以及衰减动画,这在创建真实有物里性的交互很有用.其API能够快速的整合进已有的Objective-C工程,可以对任意对象的任意属性做动画.这是一个成熟且经过测试的框架,在Paper这款优秀的app中有广泛的应用.(iOS7之后苹果也提供了Spring动画(不过CASpringAnimation iOS9才提供)以及UIDynami…
CoreAnimation的好处: 1.高性能,简单的编程模块 2.像View一样,使用层级结构来构建负责的界面 3.轻量级数据结构,能使上百个动画同时执行 4.抽象的动画接口,允许动画在一个独立的线程中运行,独立于应用程序的run loop 5.提高应用程序的性能 6.可扩展的布局管理模型 CoreAnimation Class: 1.Layer Class:提供显示内容 2.Animation and timing Class Layer的许多属性都有隐式的动画效果,改变属性值将会自动产生一…
CoreAnimation在我之前的UIKit动画里面简单的提了一句CoreAnimation动画,其实大家别看它类库名种有个animation,实际上animation在这个库中只占有很小的地位. 像我们经常用的边框.圆角.阴影.锚点等等这些属性都是有CA提供的. 在说CA动画前,我们先说一下CALayer这个类,CALayer可以叫做图层,UIView是视图.对别CALayer和UIView它们之间最大的差别在于CALayer是不处理交互的,比如点击事件等. 实际上UIView是CALaye…
目录 一 Core Animation 二 核心动画 2.1 基础动画 2.2 关键帧动画 2.3 动画组 2.4 转场动画 2.5 逐帧动画 三 UIView动画封装 3.1 基础动画 3.2 弹簧动画 3.3 关键帧动画 3.4 转场动画 一 Core Animation 大家都知道在iOS中实现一个动画相当简单,只要调用UIView的块代码即可实现一个动画效果,这在其他系统开发中基本不可能实现.下面通过一个简单的UIView进行一个图片放大动画效果演示: - (void)addAnimat…
学习资源来自:图层树 . Quartz 2D Core Animation 复合引擎,职责为尽可能快地组合屏幕上不同的可视内容.这些内容被分解成多个独立的图层,存储在 图层树 的体系中.于是这个树形成了 UIKit框架 和屏幕上所能看到的一切基础. ------ 1. 图层树 1.1. 图层与视图 参考:图层与视图 视图由 UIView 派生的,可以处理触摸事件,支持 CoreGraphics 绘图,Affine Transformation,或者 UIView animation 简单动画.…