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

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

谢谢!

【问题讨论】:

    标签: ios swift swiftui ios14 pencilkit


    【解决方案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 中,但这似乎不起作用。
    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多