如何在 iOS 应用程序中使用 PDFThumbnailView

How to use PDFThumbnailView in iOS app

我正在尝试使用 PDFKit 中的 PDFThumbnailView 来显示 pdf 文档的缩略图,但我无法让它工作。控制台中没有显示任何错误。我只是得到一个空白 viewController。下面是我的代码。请有人告诉我哪里出错了?

我拖了一个 UIView 对象并给它赋值如下 class 'PDFThumbnailView'.

 import UIKit
 import PDFKit

 class pdfThumbNailViewController: UIViewController {


@IBOutlet weak var myThumbNailView: PDFThumbnailView!

override func viewDidLoad() {
    super.viewDidLoad()

    // create PDFView Object
    // Then assign this object as the variable of thumbnailview object
    let myPDFViewObject = PDFView.init()
    if let path = Bundle.main.path(forResource: "paper", ofType: "pdf"){
        let url = URL.init(fileURLWithPath: path)
        if let pdfDocument = PDFDocument.init(url: url){
            myPDFViewObject.document = pdfDocument

        }
    }
    // Setting thumbnail size
    let size = CGSize.init(width: 50, height: 50)
    myThumbNailView.thumbnailSize = size
    myThumbNailView.layoutMode = .vertical
    myThumbNailView.pdfView = myPDFViewObject

}
}

你得到一个空白 ViewController 因为你根本没有使用你的 myThumbnailView..

viewDidLoad 中,您创建了一个缩略图视图并为其分配了数据,但您从未真正使用过 IBOutlet myThumbNailView.. 因此它是空白的,当 [=11] 时本地视图被释放=]完成。

TLDR:thumbNailObject != myThumbNailView..您使用了错误的对象引用。

是的 - 在您当前的代码中存在内存问题,这就是为什么您最后什么都看不到的原因:

您已经在 viewDidLoad() 中定义了 let myPDFViewObject: PDFView,它只存在于该方法块中;一旦到达该方法的末尾,您的 PDFView 就会被释放,反过来 PDFThumbnailView 不再有关联的 PDFView

您只需将 let myPDFViewObject: PDFView 移动到 viewDidLoad() 的上方和外侧即可解决您的问题,这可确保 PDFView 的寿命更长

编码愉快!

let myPDFViewObject = PDFView()
override func viewDidLoad() {
    super.viewDidLoad()

    // Then assign this object as the variable of thumbnailview object
    if let path = Bundle...