美文网首页
8. view 与 layer 的区别和联系

8. view 与 layer 的区别和联系

作者: 海盗军长 | 来源:发表于2018-07-25 19:14 被阅读0次

什么是 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 的性能会更高一点,因为少了事件处理的功能,会更加轻量级。

相关文章

网友评论

      本文标题:8. view 与 layer 的区别和联系

      本文链接:https://www.haomeiwen.com/subject/pjyemftx.html