前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >UIView和CALayer

UIView和CALayer

作者头像
用户2491699
发布于 2018-08-02 03:29:11
发布于 2018-08-02 03:29:11
9920
举报
文章被收录于专栏:朱慕之的博客朱慕之的博客
  • UIView和CALayer都继承自NSObjet。
继承结构
  • UIView的继承结构为: UIResponder : NSObject。
    • UIResponder是用来响应事件的,也就是UIView可以响应用户事件
  • CALayer的继承结构为: NSObject
    • 直接从 NSObject继承,因为缺少了UIResponder类,所以CALayer悲催的不能响应任何用户事件。
  • UIView是视图的基类,UIViewController是视图控制器的基类,UIResponder是表示一个可以在屏幕上响应触摸事件的对象;
所属框架
  • UIView是在 /System/Library/Frameworks/UIKit.framework中定义的
    • UIKit主要是用来构建用户界面,并且是可以响应事件的(源于UIView的父类UIResponder)
    • UIView是用来显示内容的,可以处理用户事件
  • CALayer是在/System/Library/Frameworks/QuartzCore.framework定义的。
    • CALayer作为一个低级的,可以承载绘制内容的底层对象出现在该框架中。
    • CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。
作用机制
  • 当UIView需要显示的时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上(CALayer上),系统将图层拷贝到屏幕上,完成UIView的显示。
    • 通过操作这个CALayer对象,可以很方便的调整UIView的一些界面属性,比如:阴影,圆角大小,旋转等等。

    1 2 3 4viewT.layer.cornerRadius = 10;//设置半径 viewT.layer.borderWidth = 10;//设置边框的宽度,当然可以不要 viewT.layer.borderColor = [[UIColor redColor] CGColor];//设置边框的颜色 viewT.layer.masksToBounds = YES;//设为NO去试试

  • 所以UIView相比CALayer最大区别是UIView可以响应用户事件,而CALayer不可以。UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制。
  • UIView和CALayer是相互依赖的关系。UIView依赖与CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容。归根到底CALayer是这一切的基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊的CALayer实现,添加了响应事件的能力。
  • UIView来自CALayer,高于CALayer,是CALayer的高层实现与封装。UIView的所有特性来源于CALayer支持。 参考: 图片引用
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-May-We,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS面试题:UIWindow,UIView,CALayer的区别
继承自UIView,是一种特殊的 UIView,通常在一个app中只会有一个keyUIWindow。
猿_人类
2019/07/01
8230
iOS面试题:UIWindow,UIView,CALayer的区别
CALayer 图层概念二、CALayer属性二、方法
概念 CA -> Core Animation (核心动画) 相对更底层. CALayer负责视图中显示内容和动画.所有动画都是作用在CALayer上的. UIView负责监听和相应事件.UIView是更高层的封装 在 iOS 中,你能看得见,摸得着的东西基本上都是UIView.比如一个按钮,一个文本标签,一个文本输入框, 一个图标等.这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时, UIView内部会自动创建一个图层 (即CALayer对象
用户2141756
2018/05/18
1.5K0
iOS动画-CALayer基础知识
核心动画Core Animation,其实是由Layer Kit这样一个名字演变而来。它实际上是一个复合引擎,可以将存储在图层树体系中的不同独立图层,尽可能快地组合成不同的可视内容呈现于屏幕上;所以做动画只是Core Animation的特性之一;
梧雨北辰
2019/04/22
1.9K0
iOS动画-CALayer基础知识
iOS 页面渲染 - UIView & CALayer
今天我们来聊一聊 UIView 与 CALayer 的相关知识以及它们之间的关系,其实这部分内容要是引申出来会比较多,今天我们先收敛一下,先讲一些基本的东西,后面还会有系列文章对其进行扩展。关于iOS的UI渲染部分,还是建议大家看看Apple的官方文档核心动画编程指南[1]以及WWDC2011的sessionUnderstanding UIKit Rendering[2]。
CoderStar
2022/08/24
1.9K2
iOS 页面渲染 - UIView & CALayer
iOS-核心动画详解之CALayer
1. CALayer的基本操作. 1. CALayer简介: CALayer我们又称为层,在每个UIView内部都有一个layer的属性,UIView之所以能够显示,就是因为它里面有layer层,才具有显示的功能,我们通过操作CALayer对象,可以很方便地调整UIView的一些外观属性,例如可以给UIView设置阴影,圆角,边框等等... 2. 操作layer改变UIView外观. 2.1 设置阴影 //默认图层是有阴影的, 只不过是透明的。1为不透明,0为透明 _RedView.layer.sha
xx_Cc
2018/05/10
2K0
UIView和CALayer
 UIView:http://blog.csdn.net/ZY_FlyWay/article/details/58611627
星宇大前端
2019/01/15
6850
iOS学习——核心动画之Layer基础
CALayer我们又称它叫做层。在每个UIView内部都有一个layer这样一个属性,UIView之所以能够显示,就是因为它里面有这个layer才具有显示的功能。我们可以通过操作CALayer对象,可以很方便地调整UIView的一些外观属性,可以给UIView设置阴影,圆角,边框等等...
mukekeheart
2018/08/01
1.6K0
iOS学习——核心动画之Layer基础
iOS从Xib中设置样式
iOS在写视图的有的人喜欢纯代码去写,从之前的绝对定位方式(Frame),到现在的自动布局(Autolayout),但这种方式的好处是便于复制修改和装X,但是缺点是代码不容易看,不便于修改
码客说
2019/10/22
2.4K0
Quartz2D复习(四) --- 图层CALayer和动画CAAnimation
1)、在ios中,能看得见摸得着的东西基本上都是UIView, 比如按钮、文本标签、文本输入框、图标等,这些都是UIView
tandaxia
2018/09/27
1.5K0
Quartz2D复习(四) --- 图层CALayer和动画CAAnimation
苹果有了CALayer,为什么还要UIView?
这篇文章非常生动的解释了一个原则:SRP单一自责原则。SRP是SOLID五大设计原则中最容易被误解的一个。也许是名字的原因,很多程序员根据SRP这个名字想当然地认为这个原则就是指:每个模块都应该只做一件事。我们在将大型函数重构成小函数时经常会用到这个原则,但这只是一个面向底层实现细节的设计原则,并不是SRP的全部。
Wu_Candy
2022/07/04
3890
iOS CALayer 简单介绍
总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层。
用户1219438
2018/08/06
6590
iOS CALayer 简单介绍
CALayer的寄宿图
一个视图就是在屏幕上显示的一个矩阵块(比如图片、文字或者视频),它能够拦截点击以及触摸手势等用户输入。视图在层级关系中可以相互嵌套,一个视图可以管理他的所有所有子视图的位置。
拉维
2019/08/12
1.1K0
CALayer的寄宿图
iOS面试题-UI篇
面试题持续整理更新中,如果你正在面试或者想一起进阶,不妨添加一下交流群1012951431一起交流。
会写bug的程序员
2020/06/29
2.1K0
iOS面试题-UI篇
图层树和寄宿图 -- iOS Core Animation 系列一
一个视图就是在屏幕上显示的一个矩形块(比如图片,文字或者视频),它能够拦截类似于鼠标点击或者触摸手势等用户输入。视图在层级关系中可以互相嵌套,一个视图可以管理它的所有子视图的位置。 在iOS中,所有的视图都是从UIView这个基类派生出来的。UIView可以处理触摸时间,支持Core Graphics绘图,可以仿射变换等等操作。
Charlie_W
2018/10/19
1.2K0
图层树和寄宿图 -- iOS Core Animation 系列一
【IOS开发进阶系列】动画专题
http://doc.okbase.net/Hello_Hwc/archive/123447.html
江中散人_Jun
2023/10/16
5840
【IOS开发进阶系列】动画专题
iOS 渲染原理解析
对于现代计算机系统,简单来说可以大概视作三层架构:硬件、操作系统与进程。对于移动端来说,进程就是 app,而 CPU 与 GPU 是硬件层面的重要组成部分。CPU 与 GPU 提供了计算能力,通过操作系统被 app 调用。
会写bug的程序员
2020/06/03
2.2K0
iOS 渲染原理解析
iOS系统架构及常用框架
UIKit框架是可视类对象的基础文件,继承于NSObject。提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口、应用程序对象、事件控制、绘图模型、窗口、视图和用于控制触摸屏等的接口。
sweet说好的幸福
2020/12/23
7.9K0
iOS系统架构及常用框架
iOS 事件处理机制与图像渲染过程
致歉声明: Peter在开发公众号功能时触发了一个bug,导致群发错误。对此我们深表歉意,并果断开除了Peter。以下交回给正文时间: iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 NSTimer iOS 渲染过程 渲染时机 CPU 和 GPU渲染 Core Animation Facebook Pop介绍 AsyncDisplay介绍 参考文章 iOS RunLoop都干了什么 Ru
微信终端开发团队
2018/01/29
5.6K2
iOS 事件处理机制与图像渲染过程
iOS 页面渲染 - 流程
作为一名专业的 iOS 页面仔,画 UI 是我们的家常便饭,那不知道你在开发过程中有没有思考过这样一些问题:
CoderStar
2022/09/23
1.9K1
iOS 页面渲染 - 流程
iOS动画-CALayer隐式动画原理与特性
Core Animation的一个非常显著的特性是就是实现动画,而且它支持隐式动画和显式动画两种形式,本篇我们主要从隐式动画说起;
梧雨北辰
2019/04/25
4.7K0
iOS动画-CALayer隐式动画原理与特性
相关推荐
iOS面试题:UIWindow,UIView,CALayer的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文