Как получить координаты жеста касания на PKCanvasView с помощью PencilKit? Swift 5 & Xcode 11 - PullRequest
0 голосов
/ 04 марта 2020

ОБРАТИТЕ ВНИМАНИЕ, что я много смотрел везде, но не смог найти решение.

Используя Раскадровка , у меня есть ViewController, с View (UIView) и Subview (PKCanvasView), где я хочу использовать PencilKit для рисования на последнем.

_

Мои цели :

  1. Ничья только на этом PKCanvasView

  2. Получите координаты в реальном времени, где я рисую на PKCanvasView

My результаты :

  1. Я могу рисовать на PKCanvasView , только если я начинаю с этого вида, и я могу рисовать только в пределах кадр этого PKCanvasView . Это хорошо.

  2. Мне удается только получить координаты места, где я касаюсь экрана ЕСЛИ Я запускаю жест на UIView . НО Не , если я сначала коснусь PKCanvasView .

Моя проблема :

Как сделать Я получаю координаты того, где я рисую на PKCanvasView?

-

Ниже мой код :

import UIKit
import PencilKit

class ViewController: UIViewController {

    @IBOutlet weak var labelText: UILabel! //Label object to display the coordinates

    @IBOutlet weak var canvasView: PKCanvasView! //Subview to draw on

    override func viewDidAppear(_ animated: Bool) {
        canvasView.tool = PKInkingTool(.pen, color: .black, width: 10)
    }

    // MARK: FUNCTIONS //
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        touches.forEach { (touch) in
            updateGagues(with: touch)
        }
    }

    override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
        touches.forEach { (touch) in
            updateGagues(with: touch)
        }
    }

    private func updateGagues(with touch: UITouch) {
        let location = touch.preciseLocation(in: view)
        labelText.text = location.debugDescription
    }
}
...