我试图利用PDFPageOverlayViewProvider 16引入的PDFKit框架中的PDFView类的PDFKit协议,以便在PDF文档的基础上显示PencilKit PKCanvasView,这样用户就可以在PDF文档上绘制东西。
我想要完成的任务基本上和WWDC22会话10089中显示的一样。遗憾的是,没有提供包含此功能的示例代码。
这是我的问题:我设法通过PKCanvasView协议将PDFPageOverlayViewProvider添加到视图层次结构中,但我无法绘制任何东西。我使用这一技术调试了触摸事件,看起来这些触摸被转发到PDFDocumentView,这是PDFView的内部子视图,也是PKCanvasView的父视图。


如何确保用苹果铅笔制作的触摸事件被转发到PKCanvasView,而不禁用PDFView的滚动和摇摄功能
发布于 2022-10-15 03:12:10
这是解决方案:将此代码放在overlayprovider的pdfView func中:
if (view.documentView != nil){
for sv in view.documentView!.subviews {
if (sv.theClassName == "PDFPageView" ){
sv.isUserInteractionEnabled = true
}
}
} 对于theClassName,您应该像这样扩展NSObject:
extension NSObject {
var theClassName: String {
return NSStringFromClass(type(of: self))
}
}https://stackoverflow.com/questions/73960885
复制相似问题