iOS-CATextlayer,CAShapelayer、CAGradientlayer

一、CATextLayer:一个提供简单文本布局和渲染纯文本或属性字符串的图层

P:   string 呈现文本内容。

       font 文本的字体。

fontSize:文本的字体大小

wrapped:是否适应layer的边界,默认NO

alignmentMode:单个文本行的对齐模式 默认kCAAlignmentNatural,自然对齐

truncationMode:设定文本超出后的截断模式。

1、kCATruncationNone:如果wrapped属性是YES,文本被包裹到接收者的边界,否则文本被剪切到接收者的边界。

2、kCATruncationStart:显示每一行,使得末端符合容器,缺少的文本由某种省略字形指示。

3、kCATruncationEnd:显示每一行,使得开始符合容器,并且缺少的文本由某种省略号字形指示。

4、kCATruncationMiddle:显示每一行,使得容器中的开始和结束符合并且缺少的文本由中间的某种省略字形指示。

二、CAShapeLayer:在其坐标空间中绘制立方贝塞尔样条曲线的图层;

let slayer =CAShapeLayer.init()

let path =UIBezierPath.init()

path.moveToPoint(CGPointMake(20,300))

path.addLineToPoint(CGPointMake(20,100))

path.addLineToPoint(CGPointMake(120,50))

path.addLineToPoint(CGPointMake(220,100))

path.addLineToPoint(CGPointMake(220,300))

path.addLineToPoint(CGPointMake(20,300))

//把画图的路径path添加到layer中

slayer.path =path.CGPath

CAShapelayer属性的的简单说明:

Path:就是要渲染的路径,这个需要一个贝塞尔曲线的对象。fillColor,用于充填形状路径的颜色;fillRule 充填规则;lineCap :线段的两头的不同格式;lineJoin:线段之前的连接风格。strokeColor:曲线路线的颜色。

三、CAGradientlayer :您可以使用渐变图层创建包含任意数量颜色的颜色渐变。默认情况下,颜色在图层上均匀分布,但您可以选择指定位置,以通过渐变对颜色位置进行控制。

colors:添加渐变颜色的对象数组;

locations:定义每种渐变颜色位置的数组,和colors对应。从0~1的值。

endPoint:渐变的终点。默认值是(0.5,1.0)

startPoint:渐变的起始点,默认值(0.5,0.0)

type:渐变的风格。

startPoint 和endPoint属性,决定了她们渐变的方向,这两个参数是以单位坐标系进行定义的,左上角是(0,0)右下角(1,1)

1、简单渐变

CAGradientLayer *gradientLayer = [CAGradientLayer layer];

gradientLayer.frame = self.containerView.bounds;

[self.containerView.layer addSublayer:gradientLayer];在目标View上添加渐变图层。

gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor blueColor].CGColor];

gradientLayer.startPoint = CGPointMake(0, 0);

gradientLayer.endPoint = CGPointMake(1, 1);

iOS-CATextlayer,CAShapelayer、CAGradientlayer_第1张图片
对角线渐变的效果

2、多重渐变

如果你愿意,colors属性可以包含很多颜色,所以创建一个彩虹一样的多重渐变也是很简单的。默认情况下,这些颜色在空间上均匀地被渲染,但是我们可以用locations属性来调整空间。locations属性是一个浮点数值的数组(以NSNumber包装)。这些浮点数定义了colors属性中每个不同颜色的位置,同样的,也是以单位坐标系进行标定。0.0代表着渐变的开始,1.0代表着结束。

locations数组并不是强制要求的,但是如果你给它赋值了就一定要确保locations的数组大小和colors数组大小一定要相同,否则你将会得到一个空白的渐变。

//set gradient colors

gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id) [UIColor yellowColor].CGColor, (__bridge id)[UIColor greenColor].CGColor];

//set locations

gradientLayer.locations = @[@0.0, @0.25, @0.5];

修改之后就会出现一个在左上角的渐变图。

你可能感兴趣的:(iOS-CATextlayer,CAShapelayer、CAGradientlayer)