带角度的CAGradientLayer

时间:2013-08-26 05:08:06

标签: ios cashapelayer cagradientlayer

我正在绘制CGPath不是矩形或正方形,并将CGPath添加到CAShapeLayer。这个CAShapeLayer的框架使用CGPathCGPathGetBoundingBox(path)获取。所以它将是矩形或方形。现在我想将渐变颜色设置为图层,但我的路径不是矩形或方形,因此它不会在整个CGPath中均匀地传播渐变颜色。有没有办法将渐变颜色设置为CGPath或如何设置渐变颜色与角度?

请参考截图了解情况。这里白色表示CGPath的帧和绿色,即我们绘制的CGPath。在CGPath的底部,您可以看到白色渐变颜色在CGPath中不均匀分布。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:13)

线性渐变的起点和终点以相对于图层整体大小的点指定,左上角为(0,0),右下角为(1,1)。

因此,要以某个角度制作线性渐变,您只需要适当地设置起点和终点。例如,如果使用(0,0)和(1,1)作为起点和终点,则渐变将从左上角到右下角以45度角运行。

因此,根据您的需要确定具体的起点和终点只是三角学的问题。