我正在尝试利用PDFPageOverlayViewProvider
的议定书PDFView
类在PDFKit
iOS 16 引入的框架,用于显示PencilKit
PKCanvasView
位于 PDF 文档之上,以便用户可以在 PDF 上绘制内容。
我想要完成的事情基本上与中所示的相同WWDC22 第 10089 场会议 https://developer.apple.com/videos/play/wwdc2022/10089/。遗憾的是,没有提供包含此功能的示例代码。
这是我的问题:我设法添加PKCanvasView
通过PDFPageOverlayViewProvider
协议,但我无法绘制任何东西。我使用调试了触摸事件这项技术 https://stackoverflow.com/a/56323682/1043495并且触摸似乎被转发到PDFDocumentView
,这是一个内部子视图PDFView
和我的父母PKCanvasView
.
我怎样才能确保用 Apple Pencil 进行的触摸事件被转发到PKCanvasView
无需禁用滚动和平移功能PDFView
?
这是解决方案:
将此代码放入overlayprovider的pdfView
func:
if (view.documentView != nil){
for sv in view.documentView!.subviews {
if (sv.theClassName == "PDFPageView" ){
sv.isUserInteractionEnabled = true
}
}
}
For theClassName
你应该延长NSObject
像这样:
extension NSObject {
var theClassName: String {
return NSStringFromClass(type(of: self))
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)