图层的使用要点(CALayer)】的更多相关文章

A,图层和路径 基本图层 CALayer 动画的主角 形状图层 CAShapeLayer 绘制不规则图形 渐变图层 CAGradientLayer 颜色渐变.阴影 复制图层 CAReplicatorLayer 迭代复制同一个图层 基础动画 CABasicAnimation 位移.透明度.缩放.旋转 关键帧 CAKeyframeAnimation 路径.抖动.关键帧 组合动画 CAAnimationGroup 多个动画的结合 系统封装动画 CATransition 淡入淡出.推挤.解开.覆盖 放射…
图层几何学 不熟悉几何学的人就不要来这里了 --柏拉图学院入口的签名 在第二章里面,我们介绍了图层背后的图片,和一些控制图层坐标和旋转的属性.在这一章中,我们将要看一看图层内部是如何根据父图层和兄弟图层来控制位置和尺寸的.另外我们也会涉及如何管理图层的几何结构,以及它是如何被自动调整和自动布局影响的. 布局 UIView有三个比较重要的布局属性:frame,bounds和center,CALayer对应地叫做frame,bounds和position.为了能清楚区分,图层用了“position”…
图层的树状结构 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层树的体系之中.于是这个树形成了UIKit以及在iOS应用…
CALayer2-创建新的层   本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UIColor和UIImage? 四.UIView和CALayer的选择 五.UIView和CALayer的其他关系 * 上一讲已经说过,UIView内部默认有个CALayer对象(层),通过layer属性可以访问这个层.要注意的是,这个默认的层不允许重新创建,但可以往层里面添加子层 * UIView可以通过…
前言 CALayer包含在QuartzCore框架中,这是一个跨平台的框架,既可以用在iOS中又可以用在Mac OS X中.后面要学Core Animation就应该先学好Layer(层). 我们看一下UIView与Layer之间的关系图(图片来源于网络): 我们知道,UIView有一个属性layer,这个是在视图创建时就会自动创建一个图层.想要呈现出来,就需要到Layer.层是可以放很多个子层的,也就可以实现多种多样的效果. CALayer关键属性说明   1 2 3 4 5 6 7 8 9…
CALayer layer是层,每个view上都会最少有一个layer,view上的可视化内容其实都是层. CALayer展示实例 let customView = UIView(frame: CGRectMake(0, 0, 100, 100)) customView.center = view.center view.addSubview(customView) let layer = customView.layer layer.backgroundColor = UIColor.brow…
图层是core animation的基础, UIView之所以能显示在屏幕上,靠的是其内部的这个图层,即每个UIView 都有 CALayer,可通过UIView.layer或者[UIView layer]访问到这个图层.UIView可以响应事件,而CALayer只负责显示.   一. 基本属性设置      1. 设置阴影和透明度 //创建image view UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage…
(一)图层的树状结构 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层树的体系之中.于是这个树形成了UIKit以及在iOS应用程序当中你所能在屏幕上看见的一切的基础. 在我们讨论动画…
变换 很不幸,没人能告诉你母体是什么,你只能自己体会 -- 骇客帝国 在第四章“可视效果”中,我们研究了一些增强图层和它的内容显示效果的一些技术,在这一章中,我们将要研究可以用来对图层旋转,摆放或者扭曲的CGAffineTransform,以及可以将扁平物体转换成三维空间对象的CATransform3D(而不是仅仅对圆角矩形添加下沉阴影). 仿射变换 在第三章“图层几何学”中,我们使用了UIView的transform属性旋转了钟的指针,但并没有解释背后运作的原理,实际上UIView的trans…
寄宿图 图片胜过千言万语,界面抵得上千图片 ——Ben Shneiderman 我们在第一章『图层树』中介绍了CALayer类并创建了一个简单的有蓝色背景的图层.背景颜色还好啦,但是如果它仅仅是展现了一个单调的颜色未免也太无聊了.事实上CALayer类能够包含一张你喜欢的图片,这一章节我们将来探索CALayer的寄宿图(即图层中包含的图). contents属性 CALayer 有一个属性叫做contents,这个属性的类型被定义为id,意味着它可以是任何类型的对象.在这种情况下,你可以给con…
下面学习一下图层的anchorPoint,position属性在ViewDidLoad中self.View添加View1,在View1中添加图层calayer self.view1=[[UIView alloc]init]; self.view1.backgroundColor=[UIColor redColor]; self.view1.frame=CGRectMake(100, 100, 200, 200); [self.view addSubview:self.view1]; self.c…
图层的树状结构 >巨妖有图层,洋葱也有图层,你懂吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做*Layer Kit*这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个*复合引擎*,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的*图层*,存储在一个叫做*图层树*的体系之中.于是这个树形成了**UI…
CHENYILONG Blog CALayer---iOS-Apple苹果官方文档翻译之CALayer CALayer /*技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong */   CALayer简介 Core Animation是跨平台的,支持iOS环境和Mac OS X环境! 注意:凡是支持跨平台的框架,都不能直接使用UIKit框架,因为UIKit 框架只能应用在iOS而不能用于Mac!…
效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有的也使用了动画,但是线条颜色渐变的折线图的demo少之又少,甚至可以说没有.该Blog阐述了动画绘制线条颜色渐变的折线图的实现方案,以及折线图线条颜色渐变的实现原理,并附以完整的示例. 成果 本人已将折线图封装到了一个UIView子类中,并提供了相应的接口.该自定义折线图视图,基本上可以适用于大部分…
在之前的图层树中我们知道,可以使用CALayer对象创建一些有背景颜色的图层,其实使用CALayer,不仅可以利用其展示背景颜色,还可以展示图片.而这些展示内容,其实就是CALayer的寄宿图.这一节我们将来探索下CALayer寄宿图. 在CALayer中有一个属性叫做contents,这个属性的类型为id,意味着它可以是任何类型的对象,也就意味这即使你给contents属性赋任意对象值,您的项目都可以编译通过.然而,编译通过不代表使用正确,如果您给contents赋的不是CGImage对象,您…
图层树.寄宿图以及图层几何学(一)图层的树状结构 技术交流新QQ群:414971585 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存…
图层树.寄宿图以及图层几何学(一)图层的树状结构 技术交流新QQ群:414971585 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存…
阴影 主要是shadowOpacity .shadowColor.shadowOffset和shadowRadius四个属性 shadowPath属性 我们已经知道图层阴影并不总是方的,而是从图层内容的形状继承而来.这看上去不错,但是实时计算阴影也是一个非常消耗资源的,尤其是图层有多个子图层,每个图层还有一个有透明效果的寄宿图的时候. 如果你事先知道你的阴影形状会是什么样子的,你可以通过指定一个shadowPath来提高性能.shadowPath是一个CGPathRef类型(一个指向CGPath…
注:本人是翻译过来,并且加上本人的一点见解. 前言 一个像素是如何绘制到屏幕上去的?有很多种方式将一些东西映射到显示屏上,他们需要调用不同的框架.许多功能和方法的结合体.这里我们大概的看一下屏幕之后发生的事情.当你想要弄清楚什么时候.怎么去查明并解决问题时,我希望这篇文章能帮助你理解哪一个 API 可以更好的帮你解决问题.我们将聚焦于 iOS,然而我讨论的大多数问题也同样适用于 OS X. 目录 1. 图形堆栈2. 软件组成3. 硬件参与者4. 合成5. 不透明 VS 透明6. 像素对齐 VS…
如果想在底层做一些改变,想实现一些特别的动画,这时除了学习Core Animation之外,别无选择. 最近在看<iOS Core Animation:Advanced Techniques>这本书籍,尚有所收获,并将之记录下来. CALayer如果将UIView说成是视图,那么CALayer就是图层了.每一个 UIView 的身后对应一个 Core Animation 框架中的 CALayer:每一个 CALayer 都是 UIView 的代理.可以尝试运行下面的代码,会发现打印是一样的内存…
效果图 实现思路 该示例通过隐式动画实现 表盘通过显示在imageView中的一张图片来实现 在表盘上绘制(时分秒)三条直线,分别位于不同的图层,且时针位于最下层,秒针位于最上层 设置直线为圆角 直线的一段位于表盘的圆心 通过NSTimer定时器,使不同的图层定时执行对应的动画 实现步骤 通过storyboard创建表盘,并拥有它 @property (weak, nonatomic) IBOutlet UIImageView *clockView; 使用三个成员变量来保存时分秒三根表针位于的不…
本文是<Core Animation Programming Guide>2013-01-28更新版本的译文.本文略去了原文中关于OS X平台上Core Animation相关内容.因为原文的类型属于编程指南,所以示例代码并不多,更多的是理论层面的探讨.所以译文中加入了大量的示例代码,以提高本文的可操作性.希望本文能够对你有所帮助. 本文由海水的味道翻译,转载请注明译者和出处,请勿用于商业用途! 关于Core Animation Core Animation是iOS与OS X平台上负责图形渲染…
8/8日报 分级埋点:     [MobClick event:UmengPagePlusDoctor attributes:@{@"page":@"plusPage"}]; 弹层适配小屏幕, 标题比较长,太靠近左右两边了 使用中文标点符号   学习关于保险,超过50岁,重疾险就不好买了,这个"不好买”有两层意思,第一层,有的保险直接不卖给50岁以上的人,第二层,50岁以上的人重疾险非常昂贵,而且赔付的钱最多十万. 保险应该趁年轻买 看知乎,李元霸推荐的两…
标题有点吓人,但是对于drawRect的评价倒是一点都不过分.在平日的开发中,随意覆盖drawRect方法,稍有不慎就会让你的程序内存暴增.下面我们来看一个例子. 去年的某天午后,北京的雾霾依旧像现在这样醇厚,我的同事辉哥像往常一样与我楼下约烟.我见辉哥表情凝重,便询问究竟.辉哥做了一个画板功能,但是苦于内存问题一直得不到解决.画板功能很简单,就是记录手指触摸的轨迹然后绘制在屏幕上.下面我们来看一张效果图: 效果图 如图我们看到左侧内存的状况随着手指的绘制逐渐恶化.另外细心的同学可以观察到,点击…
那么现在我们分析一下drawRect导致内存暴增的真正原因: 重写drawRect为何会导致内存大量上涨? 要想搞明白这个问题,我们需要撸一撸在 iOS 程序上图形显示的原理.在 iOS 系统中所有显示的视图都是从基类UIView继承而来的,同时UIView负责接收用户交互. 但是实际上你所看到的视图内容,包括图形等,都是由UIView的一个实例图层属性来绘制和渲染的,那就是CALayer. CALayer类的概念与UIView非常类似,它也具有树形的层级关系,并且可以包含图片文本.背景色等.它…
圆角 圆角矩形是iOS的一个标志性审美特性.这在iOS的每一个地方都得到了体现,不论是主屏幕图标,还是警告弹框,甚至是文本框.按照这流行程度,你可能会认为一定有不借助Photoshop就能轻易创建圆角举行的方法.恭喜你,猜对了. CALayer有一个叫做conrnerRadius的属性控制着图层角的曲率.它是一个浮点数,默认为0(为0的时候就是直角),但是你可以把它设置成任意值.默认情况下,这个曲率值只影响背景颜色而不影响背景图片或是子图层.不过,如果把masksToBounds设置成YES的话…
知识点 : 1)ios 核心动画的基础是图层.图层的基础是CALayer,它是所有核心图层类的父类. 2)CATransaction是核心动画类负责协调多个动画原子显示更新.事务支持嵌套使用. 3)图层与UIView之前的最大区别是,图层不会直接渲染到屏幕上.图层封装了几何,时间,可视化属性. 4)每个图层树分为2部分,一部分是呈现树,一部分是渲染树. 5)图层必须由视图来脱管. 图层的内容创建有以下几个方法: A)使用包含图片内容的 CGImageRef 来显式的设置图层的 contents…
原文: http://www.cocoachina.com/ios/20150104/10816.html 视觉效果和变换 (四)视觉效果 嗯,园和椭圆还不错,但如果是带圆角的矩形呢? 我们现在能做到那样了么? 史蒂芬·乔布斯 我 们在第三章『图层几何学』中讨论了图层的frame,第二章『寄宿图』则讨论了图层的寄宿图.但是图层不仅仅可以是图片或是颜色的容器:还有一系列内建的 特性使得创造美丽优雅的令人深刻的界面元素成为可能.在这一章,我们将会探索一些能够通过使用CALayer属性实现的视觉效果.…
 图层树.寄宿图以及图层几何学(一)图层的树状结构 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 原文:http://www.cocoachina.com/ios/20150104/10814.html Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就…
效果图 实现思路 该示例通过隐式动画实现 表盘通过显示在imageView中的一张图片来实现 在表盘上绘制(时分秒)三条直线,分别位于不同的图层,且时针位于最下层,秒针位于最上层 设置直线为圆角 直线的一段位于表盘的圆心 通过NSTimer定时器,使不同的图层定时执行对应的动画 实现步骤 通过storyboard创建表盘,并拥有它 @property (weak, nonatomic) IBOutlet UIImageView *clockView; 使用三个成员变量来保存时分秒三根表针位于的不…