美文网首页ios开发
iOS UIView、CALayer

iOS UIView、CALayer

作者: 学不来的凡人 | 来源:发表于2021-04-20 16:56 被阅读0次

两者的关系

在创建UIView对象时,UIView内部会自动创建一个图层(CALayer对象),而当UIView对象需要显示到屏幕上时,会调用drawRect:方法进行绘图,然后把内容都绘制到图层上,绘图完毕,系统就会将图层展示在屏幕上。
总得来说,UIView并不具有显示的功能,是它内部的层来完成显示这一项工作,但VIew有响应事件的功能。

CALayer的基本使用

通过操作UIView对象里的CALayer对象,我们可以很方便地调整UIView的一些外观属性。比如

  • 阴影
  • 边框
  • 圆角等等

UIView和UIImageView在操作CALayer上的区别

  • 当我们给UIImageView添加圆角时会发现圆角出来了但是显示图片的部分并没有出现圆角

    image

    而当我们给layer的masksToBounds属性设置为yes后才会显示出我们要的效果

    image
  • 而UIView设置圆角是不需要将masksToBounds属性设置为YES的

  • 两者的区别在于 —— 对View进行圆角的设置只会作用在layer图层上,而展示Image又是在另一个图层上,它是以CGImage的形式存储在layer的contents属性上,而将masksToBounds设置为YES是为了去掉View的根层边界外的内容。

UIView和CALayer的选择

  • CALayer是定义在QuartzCore框架中的,CGImageRef,CGColorRef这两种数据类型是定义在COreGraphics框架中的,而UIImage和UIColor是定义在UIKit框架的
  • QuartzCore框架和COreGraphics框架是可以跨平台使用的,在IOS和Mac OS X上都可以使用,但是UIKit只能在IOS中使用
  • CALayer可以做出跟UIView一样的效果,但是由于UIVIew继承于UIResponder,可以处理事件的响应,而CALayer不可以

相关文章

网友评论

    本文标题:iOS UIView、CALayer

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