美文网首页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