ios - 将绘图剪辑到 CAShapeLayer 的不透明(描边)部分

标签 ios swift core-graphics quartz-core

我有一个 CAShapeLayer,它有一个不透明的描边和一个透明的填充。然后我想调用 myContext.drawRadialGradient,但是将这个径向渐变剪辑到我的形状层的笔划。目前,我正在调用 myShapeLayer.path.addClip(),它会将径向渐变剪裁到形状层的填充区域,而不是描边。

换句话说,我想使用只是图层的不透明部分只是笔触(在我的情况下是一样的),然后使用它剪辑当前上下文。我一直在搜索 CoreGraphics 文档一段时间,但无济于事。

最佳答案

找到我的答案。您可以创建一个新的 UIBezierPath,它是现有 UIBezierPath 的副本,带有笔画,如下所示:

let strokePath = UIBezierPath(cgPath: oldPath.cgPath.copy(
    strokingWithWidth: ..., lineCap: ..., lineJoin: ..., miterLimit: ...))
strokePath.addClip()

关于ios - 将绘图剪辑到 CAShapeLayer 的不透明(描边)部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466019/

相关文章:

ios - DJI 无人机未连接(未调用 sdkManagerProductDidChange 委托(delegate)方法)

ios - 在单独类的对象上调用 Swift 选择器

ios - 无法在 TableView 上设置自定义长按手势识别器

objective-c - 裁剪区域之间的间隙

objective-c - ARC - __unsafe_unretained 的含义?

ios - MUCLight 离线消息获取 XMPP

ios - View 在缩小时像素化

swift - 为什么我的 TextView 在滚动时是透明的以及如何禁用它?

objective-c - "Cinch App"是怎么做到的呢?

ios - <错误> : CGContextSetFillColorWithColor: invalid context 0x0