PNGファイルをPKCanvasViewにロードして、その一部を描画および消去できるようにしたいと思います。これを達成する方法はありますか?
UIImageViewを使用してPKCanvasViewの後ろに配置し、PKCanvasViewを不透明にfalseに設定し、色をクリアに設定します。描画は問題ありませんが、消去はできません。
まず、UIImageViewをPKCanvasViewの背後に配置し、次にPKCanvasViewを不透明にfalseに設定し、色をクリアに設定します。
次に、PKCanvasViewDelegateで:
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return YOUR_IMAGEVIEW
}
func scrollViewDidZoom(_ scrollView: UIScrollView) {
let offsetX: CGFloat = max((scrollView.bounds.size.width - scrollView.contentSize.width) * 0.5, 0.0)
let offsetY: CGFloat = max((scrollView.bounds.size.height - scrollView.contentSize.height) * 0.5, 0.0)
YOUR_IMAGEVIEW.frame.size = CGSize(width: self.view.bounds.width * scrollView.zoomScale, height: self.view.bounds.height * scrollView.zoomScale)
YOUR_IMAGEVIEW.center = CGPoint(x: scrollView.contentSize.width * 0.5 + offsetX, y: scrollView.contentSize.height * 0.5 + offsetY)
}
Appleが言ったように、imageViewをviewForZoomingに配置するだけで十分ですが、機能しません。そこで、上記のコードをscrollViewDidZoomに追加すると、想定どおりに機能します。
PKCanvasViewのsetDrawingを使用する
https://developer.Apple.com/documentation/pencilkit/pkcanvasview/3229950-drawing
セッションビデオ221の26:53の長さを参照してください