【问题标题】:CAGradientLayer with Angle带角度的 CAGradientLayer
【发布时间】:2013-08-26 05:08:05
【问题描述】:

我正在绘制不是矩形或正方形的CGPath,并将CGPath 添加到CAShapeLayer。这个CAShapeLayer 的框架使用CGPathGetBoundingBox(path)CGPath 获取。所以它将是矩形或正方形。现在我想将渐变颜色设置为图层,但我的路径不是矩形或正方形,因此它不会在整个CGPath 上均匀分布渐变颜色。有什么方法可以将渐变颜色设置为 CGPath,或者如何设置带角度的渐变颜色?

请参考屏幕截图以了解情况。这里白色表示CGPath的框架,绿色表示我们绘制的CGPath。在CGPath 的底部可以看到在CGPath 中分布不均的白色渐变色。

【问题讨论】:

  • 如果我理解你的问题,这个链接会帮助你stackoverflow.com/a/422208/1059705
  • 所以你想说我应该使用 location 属性。对吗?
  • 我不确定,试一试..
  • 这是我的六边形的一部分,如果我把它改成五边形怎么办?我很欣赏你的回答,但它不是更通用。我不能传递静态值...
  • 您能否添加另一张图片来显示您希望看到的内容?我不确定您所说的“均匀分布”是什么意思。

标签: ios cashapelayer cagradientlayer


【解决方案1】:

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

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

因此,根据您的需求计算出具体的起点和终点只是三角函数的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多