在实现动画和各种图形效果的过程中,CALayer用的比较多,现在就总结一下CALayer及其子类的各个特点
- CALayer
所有CALayer的父类 - CATextLayer
CATextLayer *layer = [[CATextLayer alloc] init];
用来控制字体外形的layer,主要的属性有
layer.string = @”test”;//用来输入字体,默认为nil
layer.font;//用来设置字体的类型,默认为Hel
layer.fontSize;//用来设置字体的大小,默认36
layer.foregroundColor;//设置字体的颜色,默认为白色
layer.wrapped;//设置字体是否自动
layer.truncationMode//设置是否截断文字
layer.alignmentMode//设置文字的对其方式
layer.allowFontSubpixelQuantization//设置文字是否像素化,默认为NO - CAShaperLayer
这个是用来设置图形的形状的。
这个类中最重要的属性就是path,当根据路径绘制完图形的形状以后,可以设置这个属性把路径赋值给CAShaperLayer,然后显示出来。这个路径是贝塞尔曲线,所以通过这个Layer可以绘制很复杂的图形
*CAGradientLayer
用来给图形设置渐变色
layer.colors//设置渐变的颜色,设置的值是一个颜色的数组,包含了渐变的各种颜色
layer.startPoint
layer.endPoint //startPoint和endPoint 决定渐变gradient 绘制时的坐标空间.startPoint对应于第一层次,endPoint对应最后层次.这两个点是定义在一个单元坐标空间,然后映射到层的边界矩形.(即[0,0]是手机的左下角,[1,1]是右上角).(默认值[0.5,0]和[0.5,1].都可以做成动画
layer.type;// 这种层次将它们分开.目前只允许的值是“轴”(默认值).,目前只支持一种kCAGradientLayerAxial