这是我目前正在做的事情。
首先,我拿到文件。接下来,我创建一个 PDF 视图并将文档分配给该视图。然后我创建一个视图并在视图中进行绘图,然后将该视图作为子视图添加到 PDFView。然后我将 PDFView 转换为数据,然后转换为 PDF 文档。由于我在 PDF 的第一页上进行绘图,因此我从原始 PDF 中删除了第一页,插入新的第一页,然后返回文档。
guard let document = PDFDocument(url: url) else { return nil }
guard let page = document.page(at: 0) else { return nil }
let pageBounds = page.bounds(for: .mediaBox)
let pdfView = PDFView(frame: pageBounds)
pdfView.document = document
pdfView.enclosingScrollView?.autohidesScrollers = true
let view = /// code for subview that I am drawing on
pdfView.addSubview(view)
let data = pdfView.dataWithPDF(inside: pageBounds)
guard let pdf = PDFDocument(data: data) else { return nil }
document.removePage(at: 0)
document.insert(pdf.page(at: 0)!, at: 0)
return document
有一个更好的方法吗?为了增加皱纹,我的最终产品有一个奇怪的滚动条图像(见截图)。我尝试添加自动隐藏滚动条和 enclosingScrollView?.hasVerticalScroller = false 但似乎都没有隐藏滚动条。
提前致谢!