UIView 与 CALayer】的更多相关文章

CALayer属于Core Animation部分的内容,比较重要而不太好理解.以下是园子中看到的一篇文章的摘录: 以下摘自<<核心动画编程指南>>: 两者最大的区别是,图层不会直接渲染到屏幕上. 在模型-视图-控制器(model-view-controller)概念里面NSView和UIView是典型的视图部分,但是在核心动画里面图层是模型部分.图层封装了几何.时间.可视化属性,同时它提供了图层现实的内容,但是实际显示的过程则不是由它来完成.每个可见的图层树由两个相应的树组成:一…
联系: 1. UIView 有个属性 layer,可以返回它的主 CALayer 实例:CALayer *layer = myView.layer 2. 一个 UIView 可以有多个 CALayer, UIView 的尺寸样式都是由内部的 CALayer 来提供的 3. 两者都有树状层级结构,CALayer 有 subLayers, UIView 有 subViews 区别: 1.最大的区别 CALayer 不能处理用户的触摸事件,而 UIView 可以UIView 继承自 UIRespond…
iOS 杂笔-20(UIView和CALayer的区别与联系) 每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供.两者都有树状层级结构,layer 内部有 SubLayers,View 内部有 SubViews.但是 Layer 比 View 多了个AnchorPoint 在 View显示的时候,UIView 做为 Layer 的 CALayerDelegate,View 的显示内容由内部的 CALayer…
1.UIView相比CALayer最大区别是UIView可以响应用户事件,而CALayer不可以.UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制. 2.UIView和CALayer是相互依赖的关系.UIView依赖与CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容.归根到底CALayer是这一切的基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊的CALayer实现,添加了响应事件的能力. 3.UIView来自…
研 究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人,其实是假 设读的人了解界面动画技术的原理的.今天有点别的事情要使用Linux,忘掉了ssh的密码,没办法重新设ssh,结果怎么也想不起来怎么设ssh远程登 陆了,没办法又到网上查了一遍,太浪费时间了,痛感忘记记笔记是多么可怕的事情.鉴于Core Animation的内容实在是非常繁杂,应用的Obj-…
-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人,其实是假 设读的人了解界面动画技术的原理的.今天有点别的事情要使用Linux,忘掉了ssh的密码,没办法重新设ssh,结果怎么也想不起来怎么设ssh远程登 陆了,没办法又到网上查…
UIView的CALayer基本演练的属性和注意事项: 在UIView中创建一个按钮UIButton,然后设置UIButton的Layer属性 –圆角.边框.阴影及3D形变属性 注意: 1.在UIView中CALayer只是一个类声明,因此需要添加QuartzCore框架(iOS7中已经不需要在导入了) 2.UIKit框架只能应用在iOS而不能用于Mac,但是Quartz 2D是可以跨平台的,因此在使用颜色时,不能直接使用UIColor而需要将颜色转成CGColor 3.修改图层相当于修改UIV…
今天,被坑了,面试的时候没回答出来,特此记录一下 一.继承结构 1: UIView的继承结构为: UIResponder : NSObject UIResponder是用来响应事件的,也就是UIView可以响应用户事件 2:CALayer的继承结构为: NSObject. 直接从 NSObject继承,没有UIResponder类,所以CALayer不能响应任何用户事件. 二.所属框架 1:UIView是在 /System/Library/Frameworks/UIKit.framework中定…
UIWindow.UIView以及CALayer之间的关系2016-05-11 20:46 本站整理 浏览(16) UIWindow1.简介UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow.2.作用a.包含程序所有要显示的视图:b.传递手势消息到其它的UIView对象或者其它对象:c.与UIViewController一起处理屏幕旋转.3.初始化a.使用storyboard如果为应用程序创建了一个storyboard,并在info.plist中将其指定为ma…
UIView显示在屏幕上归功于CALayer,通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承自UIResponder,比起CALayer可以响应用户事件,Xcode6之后可以方便的通过视图调试功能查看图层之间的关系 UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它.它内部是由Core Animation来实现的,它真正的绘图部分,是由一个叫CALayer(Core Animation Layer)的类来管理.UI…
研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人,其实是假设读的人了解界面动画技术的原理的.今天有点别的事情要使用Linux,忘掉了ssh的密码,没办法重新设ssh,结果怎么也想不起来怎么设ssh远程登陆了,没办法又到网上查了一遍,太浪费时间了,痛感忘记记笔记是多么可怕的事情.鉴于Core Animation的内容实在是非常繁杂,应用的Obj-C语言…
UIView 有一个名叫 layer ,类型为 CALayer 的对象属性,它们的行为很相似,主要区别在于:CALayer 继承自 NSObject ,不能够响应事件. 这是因为 UIView 除了负责响应事件 ( 继承自 UIReponder ) 外,它还是一个对 CALayer 的底层封装.可以说,它们的相似行为都依赖于 CALayer 的实现,UIView 只不过是封装了它的高级接口而已. 那 CALayer 是什么呢? CALayer(图层) 文档对它定义是:管理基于图像内容的对象,允许…
在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatomic,readonly,retain) CALayer *layer; 当UIView需要显示到屏幕上时,会调用drawRec…
view是对layer的一种封装,你对view的很多操作事实上是对layer的操作,之所以会出现这两个东西是因为1.view支持很多手势的交互,你所操作iphone的各种点击,拖动等等.2.layer来至于mac os,是可以跨平台的东西.这里就是个很要学问的东西,系统的可变部分和不可变部分,可变部分越多,系统越不稳定,但是功能就更加丰富.layer就是作为一种不可变的东西存在,view作为一种可变的东西存在,所有我们每次在ios更新时候获得了大量的view新特性,但是整个view系统底层很多东…
UIView是在/System/Library/Frameworks/UIKit.framework定义,也就是处于Cocoa Touch层. CALyer是在/System/Library/Frameworks/QuartzCore.framework定义,也就是处于Media层.   从iOS整个体系分层结构看,CALayer较UIView更底层.   Layer相关描述: Core Animation本身不是绘画系统(drawing system),它是硬件中合成和操控app内容的基础(i…
(1)首先UIView可以响应用户的触摸事件,Layer不可以. (2)View中frame getter方法,bounds和center,UIView并没有做什么工作:它只是简单的各自调用它底层的CALayer的frame,bounds和position方法. (3)UIView主要是对显示内容的管理而CALayer 主要侧重显示内容的绘制. (4)在做iOS 动画的时候,修改非RootLayer的属性(譬如位置.背景色等)会默认产生隐式动画,而修改UIView则不会.每个UIView 内部都…
UIView与CALayer的区别,很详细 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人,其实是假设读的人了解界面动画技术的原理的.今天有点别的事情要使用Linux,忘掉了ssh的密码,没办法重新设ssh,结果怎么也想不起来怎么设ssh远程登陆了,没办法又到网上查了一遍,太浪费时间了,痛感忘记记笔记是多么可怕的事情.鉴于Core Animatio…
详解CALayer 和 UIView的区别和联系   前言 前面发了一篇iOS 面试的文章,在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALayer 和 UIView 这个问题重新整理了下.这里会先分条解释,最后会在文章的结尾给出概括性总结. 1.首先UIView可以响应事件,Layer不可以. UIKit使用UIResponder作为响应对象,来响应系统传递过来的事件并进行处理.UIApplication.UIViewController…
1.    CALayer和UIView之间的关系: 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如UI控件.图标等等,都是UIView. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层(CALayer). 在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象),通过UIView的layer属性可以访问这个层.当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会…
UIView/UIWindow/UIScreen/CALayer 1.UIScreen可以获取设备屏幕的大小. 1 2 3 4 5 6 7 // 整个屏幕的大小 {{0, 0}, {320, 480}} CGRect bounds = [UIScreen mainScreen].bounds; NSLog(@"UIScreen bounds: %@", NSStringFromCGRect(bounds));   // 应用程序窗口大小 {{0, 20}, {320, 460}} CG…
原文链接:http://www.jianshu.com/p/8e6a313c158e 一.CALayer和UIView的关系 UIView显示在屏幕上归功于CALayer 可以说:UIView依赖CALayer,又高于CALayer 通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承自UIResponder,比起CALayer可以响应用户事件,Xcode6之后可以方便的通过视图调试功能查看图层之间的关系 2.UIView更像是一个CA…
一.CALayer和UIView的关系 UIView显示在屏幕上归功于CALayer 可以说:UIView依赖CALayer,又高于CALayer 通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承自UIResponder,比起CALayer可以响应用户事件,Xcode6之后可以方便的通过视图调试功能查看图层之间的关系 2.UIView更像是一个CALayer的管理器 UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它…
UIView和CALayer的关系. 每一个UIview都有一个CALayer实例的图层属性,也就是所谓的backing layer. 实际上这些背后关联的图层才是真正用来在屏幕上显示和做动画,UIView仅仅是对它的一个封装,提供了一些iOS类似于处理触摸的具体功能,以及Core Animation底层方法的高级接口. 图层不能像视图那样处理触摸事件,不在事件响应链之中. CALayer可以处理的高级功能 UIView没有暴露出来的CALayer的功能 阴影,圆角,带颜色的边框 3D变换 非矩…
前言 本次分享将从以下方面进行展开: 曾被面试官问倒过的问题:层与视图的关系 CALayer类介绍及层与视图的关系 CAShapeLayer类介绍 UIBezierPath贝塞尔曲线讲解 CoreAnimation之动画子类介绍 CATransitionAnimation类实现各种过滤动画 关于Core Animation在iOS系统中的关系图如下: 可以看出,Core Animation是相对上层的封装,介于UIKit与Core Graphics.OpenGL/OpenGL ES之间.最底下还…
CALayer属于Core Animation部分的内容,比较重要而不太好理解.以下是园子中看到的一篇文章的摘录: 1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它.它本身完全是由CoreAnimation来实现的.它真正的绘图部分,是由一个CALayer类来管理.UIView本身更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等,实际上内部都是在访问它所包含的CALayer的相关属性. 2. UIView有个重要属性la…
http://www.cocoachina.com/ios/20150828/13244.html 作者:@武蕴牛x 授权本站转载. 前言 前面发了一篇iOS 面试的文章,在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALayer 和 UIView 这个问题重新整理了下.这里会先分条解释,最后会在文章的结尾给出概括性总结. 1.首先UIView可以响应事件,Layer不可以. UIKit使用UIResponder作为响应对象,来响应系统传递过…
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控制器view的layer上)  1 // 2 // YYViewController.m 3 // 01-创建一个简单的图层 4 // 5 // Created by apple on 14-6-21. 6 // Copyright (c) 2014年 itcase. All rights rese…
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIViewbeginAnimations:nil context:nil]和[UIView commitAnimations]之间 常见方法解析: + (void)setAnimati…
Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 1.常见方法: + (void)setAnimationDelegate:(id)delegate——设置动画代理对象: + (void)setAnimationWillStartSelector:(S…
CALayer2-创建新的层   本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UIColor和UIImage? 四.UIView和CALayer的选择 五.UIView和CALayer的其他关系 * 上一讲已经说过,UIView内部默认有个CALayer对象(层),通过layer属性可以访问这个层.要注意的是,这个默认的层不允许重新创建,但可以往层里面添加子层 * UIView可以通过…