gpt4 book ai didi

ios - CoreGraphics - 用笔划剪切渐变

转载 作者:行者123 更新时间:2023-11-29 02:13:13 26 4
gpt4 key购买 nike

我的 CGContext 有一个路径和一个线宽,这在我的 UIView 中绘制了一个漂亮的黑色路径轮廓。 .伟大的。现在我试着给这个笔划上色,虽然 CGContextSetStrokeColorWithColor方法还不错,我想要更鲜艳的颜色,所以决定使用渐变。

问题是没有 CGContextSetStrokeColorWithGradient iOS 中的方法或(我可以看到)任何类似的方法。所以我想我必须能够绘制一个渐变,该渐变会剪裁到我绘制的笔划上。

为此,我将渐变绘制到我的 UIView 上现在是 UIView具有填充 View 的渐变背景。

现在我有了黑色笔触和渐变。伟大的。但是我如何将一个剪辑到另一个呢?所以看起来我的笔触具有渐变的颜色?

我打过CGContextClip在创建描边和渐变之间,但这不会将渐变剪裁到描边,它只是将渐变剪裁到路径的填充。我唯一想要将渐变剪裁到的是描边。

有什么想法吗?

这是我的 drawRect :

let context = UIGraphicsGetCurrentContext()
let colourSpace = CGColorSpaceCreateDeviceRGB()

let path = CGPathCreateMutableCopy(path())

CGContextSetLineWidth(context, myLineWidth)
CGContextSetLineCap(context, kCGLineCapRound)
CGContextAddPath(context, path)

CGContextClip(context)

CGContextStrokePath(context)

let gradient = CGGradientCreateWithColors(colourSpace,
[startColour.CGColor, endColour.CGColor],
[0.0, 1.0])

CGContextDrawLinearGradient(context,
gradient,
CGPoint.zeroPoint,
CGPoint(x: 0, y: bounds.height),
CGGradientDrawingOptions.allZeros)

最佳答案

所以简单的 CGContextReplacePathWithStrokedPath 方法就是我所需要的。文档可能更清楚地说明发送到上下文的内容,但是我们开始了......

关于ios - CoreGraphics - 用笔划剪切渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29055394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com