iOS:如何清除PDFView?
我正在展示一些带有iOS:如何清除PDFView?,ios,swift,pdfkit,pdfview,Ios,Swift,Pdfkit,Pdfview,我正在展示一些带有PDFView类的PDF文件。有一个问题是,当我加载或更好地说替换另一个文件时,加载新文件时最后加载的文件仍然可见 代码如下: var pdfView = PDFView() //MARK: - PDF KIT func previewPDF(url:URL) { if self.view.subviews.contains(pdfView) { self.pdfView.removeFromSuperview() // Remove it
PDFView
类的PDF文件。有一个问题是,当我加载或更好地说替换另一个文件时,加载新文件时最后加载的文件仍然可见
代码如下:
var pdfView = PDFView()
//MARK: - PDF KIT
func previewPDF(url:URL) {
if self.view.subviews.contains(pdfView) {
self.pdfView.removeFromSuperview() // Remove it
} else {
}
pdfView = PDFView(frame: PDFPreview.bounds)
pdfView.removeFromSuperview()
pdfView.backgroundColor = .clear
pdfView.displayMode = .singlePage
pdfView.autoScales = true
pdfView.pageShadowsEnabled = false
pdfView.document = PDFDocument(url: url)
thumbnail = PDFThumbnail(url: url, width: 240)
// I tried to nil PDFPreview, still nothing happened
PDFPreview.addSubview(pdfView)
}
在这里,您将pdfView添加为PDFPreview的子视图,但在第一次尝试删除它时,您将检查它是否存在于self.view的子视图中,但实际上它存在于PDFPreview的子视图中。因此,将其更改为以下代码
func previewPDF(url:URL) {
if PDFPreview.subviews.contains(pdfView) {
self.pdfView.removeFromSuperview() // Remove it
} else {
}
而且,当您第二次尝试使用removeFromSuperview()删除它时,您已经实例化了另一个PDFView(),并且丢失了对旧PDFView的引用,因此删除旧PDFView也会失败
替代解决方案:
如果只是更改pdf文档,更好的解决方案就是更改PDFView的document属性。例如:
if let document = PDFDocument(url: path) {
pdfView.document = document
}
请检查此答案:-谢谢,我正在检查
self.view
而不是PDFPreview
,现在可以了