“图纸计数不匹配!” PencilKit canvasViewDidEndUsingTool 委托中的错误

问题描述

我正在尝试使用 Pencilkit 构建一个简单的绘图应用程序。但是,当我放大画布时,我希望笔画更细(在屏幕上视觉上与放大前的尺寸相同,但是一旦我完全缩小,结果会更薄)。此外,我希望笔画始终一致,这意味着不会根据笔画的速度/时间、角度等改变其大小。一个简单的涂鸦板。我已经有一个完整的绘图画布,但我无法满足这些额外的要求。这是我尝试过的:

符合 PKCanvasViewDelegate 并实现了 canvasViewDidEndUsingTool。在那里,我添加了我的代码自定义笔画,例如这个片段将所有内容转换为统一的 5x5 笔画:

func canvasViewDidEndUsingTool(_ canvasView: PKCanvasView) {
    dump(canvasView.drawing.strokes.count)
    var newDrawingstrokes = [PKstroke]()
    for stroke in canvasView.drawing.strokes {
        var newPoints = [PKstrokePoint]()
        stroke.path.forEach { (point) in
            let newPoint = PKstrokePoint(
                location: point.location,timeOffset: point.timeOffset,size: CGSize(width: 5,height: 5),opacity: CGFloat(1),force: point.force,azimuth: point.azimuth,altitude: point.altitude
            )
            newPoints.append(newPoint)
        }
        let newPath = PKstrokePath(controlPoints: newPoints,creationDate: Date())
        newDrawingstrokes.append(PKstroke(ink: PKInk(.pen,color: .white),path: newPath))
    }
    let newDrawing = PKDrawing(strokes: newDrawingstrokes)
    canvasView.drawing = newDrawing
}

当我在画布上画完一个笔划时,这个委托会被调用。但是,在调用最后一行的 canvasView.drawing = newDrawing 后,我在控制台上得到了这个日志:

[] Drawing count mismatch!

我刚刚画的笔画消失了。

我不知道这有什么问题,因为我的代码片段只是迭代现有笔画,修改它们,然后在绘图上再次设置它们。我没有找到与此相关的文档,并且 Google 因此错误/警告消息获得了 0 个结果。

感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)