iOS随笔-by玛丽iOS点点滴滴

CALayer和UIView详解

2018-01-31  本文已影响5人  MMD_

关于UI的继承关系图:

24794-e7fac72d0288644a.png

CALayer & UIView 区别

1. UIView是UIKit的(只能iOS使用),CALayer是QuartzCore的(iOS和mac os通用)
2. UIView继承UIResponder,CALayer继承NSObject,UIView比CALayer多了一个事件处理的功能,也就是说,CALayer不能处理用户的触摸事件,而UIView可以
3. UIView来自CALayer,是CALayer的高层实现和封装,UIView的所有特性来源于CALayer支持
4. CABasicAnimation,CAAnimation,CAKeyframeAnimation等动画类都需要加到CALayer上

概念

1. CALayer是定义在QuartzCore框架中的(Core Animation)
2. CGImageRef、CGColorRef两种数据类型是定义在CoreGraphics框架中的
3. UIColor、UIImage是定义在UIKit框架中的
4. QuartzCore框架和CoreGraphics框架是可以跨平台使用的,在iOS和Mac OS X上都能使用, 但是UIKit只能在iOS中使用, 所以为了保证可移植性,QuartzCore不能使用UIImage、UIColor,只能使用CGImageRef、CGColorRef

CALayer和UIView的关系

UIView显示在屏幕上归功于CALayer
UIView更像是一个CALayer的管理器

(笔或面试)UIWindow和UIView和CALayer的联系和区别

1.UIWindow:
2.接下来,当然就是常用到的UIView和CALayer;
3.CALayer

所属的框架:/System/Library/Frameworks/QuartzCore.framework;


-------总结一下:(可能不太恰当,自己面试或者传授的时候,进行整理可以)------

UIWindow、UIView、CALayer三者的关系

UIView和CALayer是相互依赖的关系。其实一切都可以从CALayer说起。

上一篇下一篇

猜你喜欢

热点阅读