3

我正在尝试构建一个能够同时使用苹果铅笔和手指输入进行绘图的应用程序。但是,当我将工具的宽度设置为足够小的数字 (1) 时,铅笔输入会正确显示,但是当我使用手指时,它会画出更粗的线条。在铅笔和手指之间切换时,我希望宽度均匀。任何帮助,将不胜感激。Bellow 是最小的可重现代码。

import Foundation
import SwiftUI
import PencilKit

struct ContentView: View {
    var body: some View {
        CanvasRepresentable()
    }
}

struct CanvasRepresentable: UIViewRepresentable {

    class Coordinator: NSObject, PKCanvasViewDelegate {
        var parent: CanvasRepresentable
        init(_ parent: CanvasRepresentable) {
            self.parent = parent

        }

        func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) {
        }

    }


    func makeCoordinator() -> Coordinator {

        return Coordinator(self)

    }

    func makeUIView(context: Context) -> PKCanvasView {
        let c = PKCanvasView()
        c.isOpaque = false
        c.allowsFingerDrawing = true
        c.delegate = context.coordinator
        c.tool = PKInkingTool(.pen, color: .black, width: 1)
        return c

    }

    func updateUIView(_ uiView: PKCanvasView, context: Context) {
        let tool = uiView.tool as! PKInkingTool
        print(tool.width)
    }

}
4

0 回答 0