PDFKit - PDFThumbnailView 跳过页面而不是显示连续页面 - swift

Posted

技术标签:

【中文标题】PDFKit - PDFThumbnailView 跳过页面而不是显示连续页面 - swift【英文标题】:PDFKit - PDFThumbnailView skips a page instead of showing continuous pages - swift 【发布时间】:2018-02-23 15:21:51 【问题描述】:

我可以展示我的 pdf 文档的 PDFThumnailView。问题是它正在跳过页面。它显示第 1、3、5 页等...而不显示其间的页面。我的代码如下。

@IBOutlet weak var pdfView: PDFView!
@IBOutlet weak var pdfThumbnailView: PDFThumbnailView!

 func setupThumbnailView() 
    pdfThumbnailView.pdfView = pdfView
    pdfThumbnailView.thumbnailSize = CGSize.init(width: thumbnailDimension, height: thumbnailDimension)
    pdfThumbnailView.backgroundColor = sidebarBackgroundColor


【问题讨论】:

【参考方案1】:

你必须让pdfThumbnailView 更大。但是它可能太大而无法在屏幕上显示,所以让我们将它放在滚动视图中。

首先更改pdfThumbnailView 上的约束,使其宽度足以容纳所有页面。

NSLayoutConstraint.activate([
    pdfThumbnailView.heightAnchor.constraint(equalToConstant: CGFloat(thumbnailSize)),
    pdfThumbnailView.widthAnchor.constraint(equalToConstant: CGFloat(pdfDocument.pageCount*thumbnailSize))
])

接下来创建滚动视图并将缩略图视图添加为其唯一的子视图。

var pdfThumbnailScrollView = UIScrollView()
pdfThumbnailScrollView.translatesAutoresizingMaskIntoConstraints = false
pdfThumbnailScrollView.addSubview(pdfThumbnailView)

最后添加一些约束,让滚动视图和缩略图视图知道如何布置自己。滚动视图只有一个子视图,所以让我们限制它以适应。

NSLayoutConstraint.activate([
    pdfThumbnailView.leadingAnchor.constraint(equalTo: pdfThumbnailScrollView.leadingAnchor),
    pdfThumbnailView.trailingAnchor.constraint(equalTo: pdfThumbnailScrollView.trailingAnchor),
    pdfThumbnailView.topAnchor.constraint(equalTo: pdfThumbnailScrollView.topAnchor),
    pdfThumbnailView.bottomAnchor.constraint(equalTo: pdfThumbnailScrollView.bottomAnchor)
])

您可以关注this 教程了解更多详情。

【讨论】:

【参考方案2】:

我可能错了,但我认为这是 PDFThumbnailView 的工作方式。通过不显示一些中间缩略图,它可以在视图宽度内容纳尽可能多的缩略图。如果您触摸缩略图,它会显示它们。让宽度变大或缩略图变小,显示更多。

【讨论】:

以上是关于PDFKit - PDFThumbnailView 跳过页面而不是显示连续页面 - swift的主要内容,如果未能解决你的问题,请参考以下文章

PDFThumbnailView:无法在 Sierra 中为 MAC OSx 应用程序选择缩略图

如何知道用户何时在 PDFKit 的 PDFView 中滑动到下一页?

Python pdfkit

ruby on rails 中使用pdfkit生成pdf

使用 PDFKit 编辑 PDF

pdfObjective-C 中 PDFKit 的大纲