🚩 | 问题
UIView、UIWindow和CALayer
📌 | 解答
UIView(所属框架:UIKit)
在应用中你所能看到的一切基本都是UIView。但是UIView之所以能够显示是因为他的内部还有一个层,CALayer。当创建一个层的时候系统会自动创建一个CALayer,当需要显示内容的时候会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示。也就是说UIView本身并不具备显示的功能,是他的内部才有的显示功能。
但是UIView有响应事件的能力,所以CALayer比只更轻量级。
CALayer (所属框架:QuartzCore)
在每个UIView都会默认存在的一个层,也可以自己创建显示。CALayer有隐式动画属性,动画都是作用在CALayer层的。
UIWindow是一种特殊的UIView,是他的子类,一般一个应用程序中只存在一个UIWindow,他提供了一个程序的显示界面,没有他你将要看不到任何UI界面。