CAGradientLayer与CAShapeLayer简介

CAGradientLayer

处理颜色的渐变

属性

属性 意义
NSArray *colors 渐变颜色的数组
NSArray *locations 渐变颜色的区间分布,locations的数组长度和color一致,这个值一般不用管它,默认是nil,会平均分布,取值在0到1之间
startPoint 映射locations中第一个位置,用单位向量表示,比如(0,0)表示从左上角开始变化。默认值是(0.5,0.0)
endPoint 映射locations中最后一个位置,用单位向量表示,比如(1,1)表示到右下角变化结束。默认值是(0.5,1.0)
NSString *type 默认值是kCAGradientLayerAxial,表示按像素均匀变化。除了默认值也无其它选项

CAShapeLayer

CAShapeLayer属于QuartzCore框架,继承自CALayer。CAShapeLayer是在坐标系内绘制贝塞尔曲线的,通过绘制贝塞尔曲线,设置shape(形状)的path(路径),从而绘制各种各样的图形以及不规则图形。因此,使用CAShapeLayer需要与UIBezierPath一起使用。
UIBezierPath类允许你在自定义的 View 中绘制和渲染由直线和曲线组成的路径.。你可以在初始化的时候直接为你的UIBezierPath指定一个几何图形。
通俗点就是UIBezierPath用来指定绘制图形路径,而CAShapeLayer就是根据路径来绘图的。

属性

属性 意义
CGPathRef path; 呈现的形状的路径,如果路径延伸到layer的bounds之外,它不会自动被剪辑到该层,只有当正常的图层隐藏规则时,才会显示。————注意:该属性可动画,但当属性更改时,不会创建隐式动画。
CGColorRef fillColor; 填充路径的颜色,或不需要填充。默认颜色为不透明的黑色。——注意:在有UIBezierPath参数配置的情况下才能发生作用
NSString *fillRule; 当在填充颜色的时候则就需要这种填充规则,值有两种,非零和奇偶数,但默认是非零值。
CGColorRef strokeColor; 设置描边色,默认无色。——注意:在有UIBezierPath参数配置的情况下才能发生作用
CGFloat strokeStart; CGFloat strokeEnd; 用于绘制边线轮廓路径的子区域。该值必须在[0,1]范围,0代表路径的开始,1代表路径的结束。在0和1之间的值沿路径长度进行线性插值。strokestart默认为0,strokeend默认为1。
CGFloat lineWidth; 线的宽度,默认为1
CGFloat strokeStart; CGFloat strokeEnd; 最大斜接长度。斜接长度指的是在两条线交汇处和外交之间的距离。只有lineJoin属性为kCALineJoinMiter时miterLimit才有效。边角的角度越小,斜接长度就会越大。为了避免斜接长度过长,我们可以使用miterLimit属性。如果斜接长度超过miterLimit的值,边角会以lineJoin的“bevel”即kCALineJoinBevel类型来显示。
NSString *lineCap; 线端点类型,值有三个类型,分别为kCALineCapButt 、kCALineCapRound 、kCALineCapSquare,默认值为Butt
NSString *lineJoin; 线连接类型,其值也有三个类型,分别为kCALineJoinMiter、kCALineJoinRound、kCALineJoinBevel,默认值是Miter
CGFloat lineDashPhase; 线型模版的起始位置
NSArray *lineDashPattern; 线性模版,这是一个NSNumber的数组,索引从1开始记,奇数位数值表示实线长度,偶数位数值表示空白长度。

参考 —— [ iOS 动画合集]

你可能感兴趣的:(IOS)