是否可以在 SwiftUI 应用中显示 PDF 缩略图?
Posted
技术标签:
【中文标题】是否可以在 SwiftUI 应用中显示 PDF 缩略图?【英文标题】:Is it possible to display PDF thumbnails in SwiftUI app? 【发布时间】:2021-01-15 09:11:26 【问题描述】:我很想知道是否可以像使用 UIKit 一样在 SwiftUI 应用程序中显示 pdf 文件的缩略图?如果有,怎么做?
我希望能够从 Firebase 存储中获取 PDF 文件,然后在应用中显示这些 PDF。
我找不到任何描述这个用例的东西...
【问题讨论】:
这里有很多questions (and answers) 与此问题相关。你检查过它们吗?也许this 或this one 【参考方案1】:要在 SwiftUI 中显示 PDF 缩略图,您需要将 PDFThumbnailView
包裹起来,这是 UIView
中的 UIViewRepresentable
。
类似:
import PDFKit
import SwiftUI
struct PDFThumbnailRepresented : UIViewRepresentable
var pdfView : PDFView
func makeUIView(context: Context) -> PDFThumbnailView
let thumbnail = PDFThumbnailView()
thumbnail.pdfView = pdfView
thumbnail.thumbnailSize = CGSize(width: 100, height: 100)
thumbnail.layoutMode = .horizontal
return thumbnail
func updateUIView(_ uiView: PDFThumbnailView, context: Context)
//do any updates you need
//you could update the thumbnailSize to the size of the view here if you want, for example
//uiView.thumbnailSize = uiView.bounds.size
您可以通过 PDFView
: PDFThumbnailRepresented(pdfView: pdfView)
来使用它
要创建您的 PDFView,您需要获取数据或 url 并创建如下内容:
guard let path = Bundle.main.url(forResource: "example", withExtension: "pdf") else return
if let document = PDFDocument(url: path)
pdfView.document = document
请注意,上面的示例是否在您应用的Bundle
中。您关于从 Firebase 存储加载它的问题超出了这个问题的范围,我假设只是在 SwiftUI 中显示 PDF 缩略图。
有关加载/创建 PDFThumbnailView 的更多资源,不包括像我上面那样包装它:https://www.hackingwithswift.com/example-code/libraries/how-to-show-pdf-thumbnails-using-pdfthumbnailview
【讨论】:
以上是关于是否可以在 SwiftUI 应用中显示 PDF 缩略图?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 11 PDF 图像资产“保留矢量数据”在 SwiftUI 中不起作用?