微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Swift 的 CGContext 中将笔触设置为形状而不是颜色

如何解决在 Swift 的 CGContext 中将笔触设置为形状而不是颜色

我正在开发一个应用程序,用户应该能够为他们的笔画选择(预定义的)形状。例如,如果他们画一条线,而不是一条彩色线,画布应该显示砖墙图案。我目前有这个(超级简化)代码

func drawLine(from fromPoint: CGPoint,to toPoint: CGPoint) {

    UIGraphicsBeginImageContext(view.frame.size)

    guard let context = UIGraphicsGetCurrentContext() else { return }
    imageView.image?.draw(in: view.bounds)

    context.move(to: fromPoint)
    context.addLine(to: toPoint)
    context.setLineCap(.round)
    context.setBlendMode(.normal)
    context.setlinewidth(brushWidth)
    context.setstrokeColor(color.cgColor)

    context.strokePath()

    imageView.image = UIGraphicsGetimageFromCurrentimageContext()
    imageView.alpha = opacity
    UIGraphicsEndImageContext()
}

调用 setstrokeColor 时,我希望能够设置自定义形状(或图像)。

作为一个额外的问题,有没有办法设置自定义行上限?

编辑:这是我想要达到的效果。最好是实时的(而不是黄线,石头图案将立即可见)。如果从 gif 中看不出来,图案是重复的,并且在角落处也是圆形的,所以我认为需要绘制它,而不是使用静态图像。

recording of desired effect

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。