在 iPhone 默认的 PDFView 中,用户可以向 pdf 添加文本。添加 textView 后,它会与 pdf 页面粘在一起并随页面滚动。
我想在我的 CustomPDFViewer 中复制此行为。我创建了一个 CustomPDFView,一个使用 PDFKit pdfView 的类。
在 CustomPDFViewer 这个类中,我在 PDFView 上添加了一个
UITapGestureRecognizer
来捕获位置。
然后,我根据点击手势获得的位置创建框架。 (x,y 位置。我给出高度和宽度)。
// location is CGPoint which I get from TapGesture
let xPoint = location.x - 100
let yPoint = location.y - 100
let frame = CGRect(x: xPoint, y: yPoint, width: 200, height: 70)
之后,我将 textView 添加到 pdfView。
pdfView.addSubview(textBoxView)
这会向 pdfView 添加一个 textView,但问题是如果我滚动 pdf,页面会滚动,但 textView 仍保留在该位置。
我想将此 textView 粘贴在用户点击的页面上,这样如果该页面向上或向下滚动,textView 也会随之移动。
所以我尝试过-
直接将textView添加到PDFKit的pdfView中。但似乎将 subView 添加到 pdfView 是不可能的。
尝试将 self (CustomPDFView) 分配给 pdfView 的委托。但即使我将这个(CustomPDFView)分配为委托,如果 pdfView 中的scrollView委托函数没有在CustomPDFView中被调用。所以我无法根据scrollView偏移量移动textView。
注意:我可以将 textView 的内容保存为 pdf 的注释,并可以将其显示为粘在页面上。但唯一的问题是让textView粘在页面上
有什么方法可以将textView或任何视图添加到pdfView作为pdfPage的粘帖吗?
您应该能够通过将文本视图添加到 pdf 视图的
.documentView
... 来做到这一点
// safely unwrap optional
if let docView = pdfView.documentView {
docView.addSubview(textBoxView)
}
然后它会随着 pdf 页面滚动。