文章目录
  1. 1. 2.多重渐变
  2. 2. 重复图层 (Repeating Layers)
  3. 3. 反射
  4. 4. 参考

[toc]

生成两种或者更多颜色的平滑渐变,它的好处是使用可硬件加速

  1. 基础渐变

20170918150573351052677.png

1
2
3
4
5
gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor blueColor].CGColor];

//set gradient start and end points
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1, 1);

2.多重渐变

相比于基础渐变,多重渐变多了一个管理每种渐变颜色范围的数组,但是值得注意的是:管理渐变范围的数组的个数和渐变颜色的个数必须是相等的,否则将会得到一个空白的渐变.就多了一个属性locations来.

20170918150573406613516.png

在上面代码的基础上加上

1
2
//设置渐变范围
gradientLayer.locations = @[@0.0, @0.25, @0.5];

重复图层 (Repeating Layers)

高效生成许多相似的图层.绘制一个或者多个图层的子视图,在每个子视图上应用不同的变换,

属性:
instanceCount: 指定图层需要重复的次数
instanceTransform:指定一个CATransform3D 变换
颜色偏移设置

1
2
replicator.instanceBlueOffset = -0.1;
replicator.instanceGreenOffset = -0.1;

“用instanceBlueOffsetinstanceGreenOffset属性实现的。通过逐步减少蓝色和绿色通道,我们逐渐将图层颜色转换成了红色”

摘录来自: 钟声. “ios核心动画高级技巧”。 iBooks.

变换是逐步增加,增加都是相对于紧接着的上一个.所以复制体不会出现在同一个位置
20170918150573517547340.png

反射

CAReplicatorLayer的应用 .. 未完待续

参考

反射Demo

文章目录
  1. 1. 2.多重渐变
  2. 2. 重复图层 (Repeating Layers)
  3. 3. 反射
  4. 4. 参考