什么是 CALayer?
- 在 iOS 系统中,我们能够看得见摸得着的基本都是 UIView,比如一个 label、button、textfield,都是UIView。
- UIView 能够显示到界面上,是因为他内部具有一个层 layer
- 在创建 UIView 对象时,它的内部会自动创建一个层(即 CALayer 对象),通过 layer 属性可以访问到这个层,而且这个层不允许重新创建,可以往层里面添加子层, addSublayer。当它需要显示的时候,会调用 drawRect: 方法进行绘图,并且会将所有内容绘制到自己的层上,绘制完成之后,系统会将层拷贝到屏幕上,完成 UIView 的显示。
- 换句话说,UIView 本身不具备显示的功能,是它内部的层才具备显示功能。
选择 UIView 还是 CALayer ?
相比 CALayer , UIView 多了一个事件处理的功能,也就是说 UIView 可以处理用户的触摸事件,而 CALayer 不可以。因此,如果显示出来的东西要跟用户交互的话,那么就使用 UIView。如果不需要,那就使用 CALayer 或者 UIView 都可以,而CALayer 的性能会更高一点,因为少了事件处理的功能,会更加轻量级。
网友评论