Я хочу использовать каркас PDFView в Swift 4. (https://developer.apple.com/documentation/pdfkit/pdfview)
Следующая функция получает путь к документу PDF. Если путь допустим, файл PDF отображается успешно. Возникла проблема, когда я дважды вызываю openMe(path: String)
. В этом случае старый контент все еще там, и новый контент добавляется. Я просто хочу заменить старый контент новым контентом.
private var pdfData: NSData? = nil
func openMe(path: String) {
let fileManager = FileManager.default
if fileManager.fileExists(atPath: path){
let url = NSURL.fileURL(withPath: path)
pdfData = NSData(contentsOfFile: path)
let pdfView = PDFView(frame: self.view.frame)
pdfViewController?.pdfViewControllerInformsMeasurementDataViewController = self
pdfView.document = PDFDocument(url: url)
pdfView.autoScales = true
pdfView.maxScaleFactor = 0.5
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.pdfViewController?.view.addSubview(pdfView)
self.show(self.pdfViewController!, sender: nil)
}
}
EDIT
См. Ответ excitedmicrobe: я только что изменил код, как показано в ответе, но расстояние между навигационным контроллером и PDFView отличается.
Fist openMe
вызов:
![enter image description here](https://i.stack.imgur.com/CNh1V.png)
Второй openMe
вызов:
![enter image description here](https://i.stack.imgur.com/94T8w.png)