我开始使用PDFKit,pdf文件位于根目录中,它使用以下代码:
if let path = Bundle.main.path(forResource: "mypdf1", ofType: "pdf") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url) {
pdfView.autoScales = true
pdfView.displayMode = .singlePageContinuous
pdfView.displayDirection = .vertical
pdfView.document = pdfDocument
print(path)
}
}
但是,如果我更改目录中的pdf文件,例如" mydirectory",它不起作用,我的代码如下:
if let path = Bundle.main.path(forResource: "mypdf1", ofType: "pdf", inDirectory: "mydirectory") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url) {
pdfView.autoScales = true
pdfView.displayMode = .singlePageContinuous
pdfView.displayDirection = .vertical
pdfView.document = pdfDocument
}
}
修复路径问题的任何建议。
更新
根据建议,请尝试以下代码,但我无法将PDF可视化。
if let documentURL = Bundle.main.url(forResource: "mypdf1", withExtension: "pdf", subdirectory: "mydirectory") {
if let document = PDFDocument(url: documentURL) {
pdfView.autoScales = true
pdfView.backgroundColor = UIColor.lightGray
pdfView.document = document
}
}
答案 0 :(得分:1)
从子目录中读取pdf的代码是正确的,因为我读到它们在路径中得到一个nil,这是肯定的,因为您的容器文件夹尚未正确创建。你可以看到黄色和蓝色文件夹,你的容器文件夹应该是蓝色的。
要制作蓝色文件夹,您应该执行以下步骤:
您将获得蓝色的文件夹,您的代码可以阅读pdf。
Xcode中有两种类型的文件夹:组和文件夹引用。 您可以使用组来组织项目中的文件而不会影响 它们在实际文件系统上的结构。这非常适合代码, 因为你只会在Xcode中使用你的代码。上 另一方面,组对资源文件不是很好。
在任何相当复杂的项目中,您通常会处理 数十个 - 如果不是数百个 - 资产文件,那些资产将需要 要由你或者从Xcode外部进行修改和操作 设计师。将所有资源文件放在一个平面文件夹中是一个 灾难的秘诀。这是文件夹引用的来源。它们 允许您将文件组织到文件系统上的文件夹中 在Xcode中保留相同的文件夹结构。
蓝色用于表示“文件夹参考”。