如何修改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的主要内容,如果未能解决你的问题,请参考以下文章