CALayer简单内容

来源:互联网 发布:thinkpad推荐 知乎 编辑:程序博客网 时间:2024/06/05 12:05


1.CALayerUIView的区别

 (1)UIViewUIKit的(只能iOS使用),CALayer是QuartzCore的(iOS和macos通用)。

  (2)UIView继承UIResponder,CALayer继承NSObject,UIView比CALayer多了一个事件处理的功能,也就是说,CALayer不能处理用户的触摸事件,而UIView可以。

   (3)UIView来自CALayer,是CALayer的高层实现和封装,UIView的所有特性来源于CALayer支持。

 (4)CABasicAnimation,CAAnimation,CAKeyframeAnimation等动画类都需要加到CALayer上。


2.CALayer

 

CALayer简单内容


3.CALayer属性

属性

说明

是否支持隐式动画

anchorPoint

和中心点position重合的一个点,称为锚点,锚点的描述是相对于xy位置比例而言的默认在图像中心点(0.5,0.5)的位置

backgroundColor

图层背景颜色

borderColor

边框颜色

borderWidth

边框宽度

bounds

图层大小

contents

图层显示内容,例如可以将图片作为图层内容显示

contentsRect

图层显示内容的大小和位置

cornerRadius

圆角半径

doubleSided

图层背面是否显示,默认为YES

frame

图层大小和位置,不支持隐式动画,所以CALayer中很少使用frame,通常使用boundsposition代替

hidden

是否隐藏

mask

图层蒙版

maskToBounds

子图层是否剪切图层边界,默认为NO

opacity

透明度 ,类似于UIViewalpha

position

图层位置

shadowColor

阴影颜色

shadowOffset

阴影偏移量

shadowOpacity

阴影透明度,注意默认为0,如果设置阴影必须设置此属性

shadowPath

阴影的形状

shadowRadius

阴影模糊半径

sublayers

子图层

sublayerTransform

子图层形变

transform

图层形变

CAShapeLayer和UIBezierPath

CAShapeLayer是CALayer的子类,是Quare2D中对图层操作最基本的一个扩展。通过它,我们可以绘制各种图形,特别是不规则图形。

每个CAShapeLayer对象都代表着将要被渲染到屏幕上的形状(shape)。具体的形状由其path(类型为CGPathRef)属性指定,形状可以是任意的,比如星形、菱形等等。

普通的CALayer在初始化时需要指定frame值,它本身是有形状,而且是矩形。CAShapeLayer初始化时也需要指定frame值,但它本身没有形状,它的形状来源于其属性path


UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建。我们使用直线段去创建矩形和多边形,使用曲线段去创建弧(arc),圆或者其他复杂的曲线形状。每一段都包括一个或者多个点,绘图命令定义如何去诠释这些点。每一个直线段或者曲线段的结束的地方是下一个的开始的地方。每一个连接的直线或者曲线段的集合成为subpath。一个UIBezierPath对象定义一个完整的路径包括一个或者多个subpaths。







0 0