iOS 14.5
import UIKit
import PencilKit
class DrawingCanvasViewController: UIViewController {
lazy var canvasView: PKCanvasView = {
let canvasView = PKCanvasView()
canvasView.drawingPolicy = .anyInput
canvasView.translatesAutoresizingMaskIntoConstraints = false
return canvasView
}()
lazy var toolPicker: PKToolPicker = {
let toolPicker = PKToolPicker()
toolPicker.addObserver(self)
return toolPicker
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(canvasView)
canvasView.frame = view.bounds
toolPicker.setVisible(true, forFirstResponder: canvasView)
toolPicker.addObserver(canvasView)
canvasView.delegate = self
canvasView.becomeFirstResponder()
}
}
extension DrawingCanvasViewController: PKToolPickerObserver, PKCanvasViewDelegate {
}
The thing was here:
lazy var toolPicker: PKToolPicker = {
let toolPicker = PKToolPicker()
toolPicker.addObserver(self)
return toolPicker
}()
You need to make the tool picker lazy var and add observer to itself.
Thanks to Recoding Channel on Youtube
Nice tutorial
https://youtu.be/f2SHsHsjTGM
Topic:
Programming Languages
SubTopic:
Swift
Tags: