如何修改PKDrawing中的个别笔画? - PencilKit / SwiftUI

Posted

技术标签:

【中文标题】如何修改PKDrawing中的个别笔画? - PencilKit / SwiftUI【英文标题】:How to modify individual strokes in PKDrawing? - PencilKit / SwiftUI 【发布时间】:2020-12-20 00:13:14 【问题描述】:

我想更改绘图中各个笔划的颜色。打印 PKDrawing().strokes 返回一个包含多个 PencilKit.PKStroke 项目的数组,我可以从反映在画布上的数组中删除笔画。但是,如果我想改变第一个笔画的颜色,我该怎么做呢?

谢谢!

【问题讨论】:

【参考方案1】:

需要修改笔画的墨色,比如

let canvasView = PKCanvasView() // assuming we some this somewhere above

...

if !canvasView.drawing.strokes.isEmpty 
     // set color whichever needed
     canvasView.drawing.strokes[0].ink.color = UIColor.red  // << here !!

使用 Xcode 12.1 / ios 14.1 测试

【讨论】:

由于某种原因,颜色更新没有反映在视图中。为了测试它,我将它添加到父视图的 onTapGesture 修改器中,并打印出第一个笔画的颜色表明颜色确实发生了变化。它只是没有在视图中更新。我是不是放错地方了? 查看更新...我现在认识到绘图是一个结构,即值类型,所以我们应该就地访问它。 效果很好!谢谢!最后一个问题,如何在颜色变化之间添加动画过渡?我尝试将作业包装在 withAnimation 中,但这似乎不起作用。

以上是关于如何修改PKDrawing中的个别笔画? - PencilKit / SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章

如何增加文本的笔画或使图像中的文本加粗?在 Python 中

固定 SVG 中的笔画宽度

PE知识复习之PE合并节

一笔画探索

使用Win PE修改其他硬盘中的系统注册表

Raphael JS 中的 Rect 在所有边上的笔画宽度不同