我成功地在我的视图中创建了 PKCanvasView 并让它在那里绘制。但是如何仅出于查看模式等某些目的禁用 PKCanvasView 中的绘图。
是否可以在 PKCanvasView 中禁用铅笔和手指绘图?
我可以通过设置变量allowFingerDrawing false 来禁用手指绘图,但我也想禁用铅笔。
适用于 iOS 13 和 iOS 14
为了回答您的问题,iOS 14 的 drawingPolicy 没有提供“noInput”选项。但一个简单的替代方法是设置isUserInteractionEnabled。
例如,声明为 canvasView 的 PKCanvasView 可以使用 isUserInteractionEnabled 设置以限制所有输入:
canvasView.isUserInteractionEnabled = false
当用户处于仅铅笔模式时,这也将限制手指的长按插入空白、剪切、复制、删除和复制。
设置isUserInteractionEnabled也会限制画布上的两指滚动。
解决方案——canvasView.isUserInteractionEnabled = false
也将禁用canvaseView的滚动功能。
更好的解决方案可以简单地禁用绘图手势
self.canvasView.drawingGestureRecognizer.isEnabled = false
这将关闭笔和手指绘图,但保持滚动视图功能可用。
如果您在 PKCanvasView 上访问 PKDrawing,您可以调用“imageFromRect” - 这将返回一个 UIImage,您可以将其放置在屏幕上进行查看,而无需对其进行编辑。