gpt4 book ai didi

ios - swift - 错误 : CGContextSetStrokePattern: pattern specified with non-pattern color space

转载 作者:行者123 更新时间:2023-11-30 13:44:11 58 4
gpt4 key购买 nike

我正在尝试沿一条线创建图像图案。最终,我想将其转换为绘图应用程序的铅笔纹理,但现在我只是沿着简单的线条测试该图案。当我运行它时,我得到一条黑实线,并且控制台打印以下消息:

错误:CGContextSetStrokePattern:使用非模式颜色空间指定的模式。

func drawStroke(view: UIView, context: CGContext?) {

let lineWidth: CGFloat = 5.0


let callbacks:CGPatternCallbacks = CGPatternCallbacks(
version: 0,
drawPattern: { (pointer, context) -> Void in
//let PENCIL = UIColor(patternImage: UIImage(named: "Pencil_Texture.png")!)

CGContextSetFillColorWithColor(context, patternImage.CGColor)

CGContextAddArc(context, 3, 3, 4, 0, radians(360), 0)
CGContextFillPath(context)

},releaseInfo: nil)

CGContextSaveGState(context)



let space = CGColorSpaceCreateDeviceRGB()
let patternSpace:CGColorSpaceRef = CGColorSpaceCreatePattern(space)!
CGContextSetFillColorSpace(context, patternSpace)

let pattern:CGPatternRef = CGPatternCreate(nil, view.frame, CGAffineTransformIdentity, 24, 24, .ConstantSpacing, true,[ callbacks ])!

let alpha:CGFloat = 1.0


//line
CGContextSetLineWidth(context, lineWidth)
CGContextSetLineCap(context, .Round)
//points
CGContextMoveToPoint(context, view.center.x, view.center.y)
CGContextAddQuadCurveToPoint(context, view.center.x, view.center.y, view.center.x, view.center.y + 200)

// Draw the stroke
CGContextSetStrokePattern(context, pattern, [alpha])
CGContextStrokePath(context)

CGContextRestoreGState(context)
}

我浏览了Apple的文档,但没有多大帮助。我看过一些 Objective-C 教程,但我认为 Swift 中不存在某些 Obj-C 方法。

最佳答案

因为您使用模板(无色)图案

您需要更改代码中的 2 个错误

1/CGPatternCreate函数:设置isColored参数传递False,因为你使用的是uncolored

let pattern:CGPatternRef = CGPatternCreate(nil, view.frame, CGAffineTransformIdentity, 24, 24, .ConstantSpacing, false,[callbacks])!

2/这么重要,你要画一个描边路径,所以你需要在描边跟随中设置ColorSpace和StrokePattern。

let color1: [CGFloat] = [1.0, 0.0, 0.0, 1.0]
CGContextSetStrokeColorSpace(context, patternSpace)
CGContextSetStrokePattern(context, pattern, color1)

关于ios - swift - 错误 : CGContextSetStrokePattern: pattern specified with non-pattern color space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35184294/

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