我正在构建一个显示PDF的应用程序,但我不知道如何使用SwiftUI显示PDF文件。我找到了如何使用UIKit显示PDF文件的教程,但没有关于SwiftUI的教程。有人可以帮助我吗?
我也在尝试使用MVVM设计模式。如果有人能帮助我,我将非常感激!
x1c 0d1x的数据
的
编码:
HomeView.swift
import SwiftUI
struct HomeView: View {
var deeds: [Deed] = deedsData
var body: some View {
NavigationView {
List(deeds) { item in
Button(action: {
}) {
HStack {
Image(systemName: "doc.fill")
Text(item.title)
}
}
}
.navigationTitle("title")
}
}
}
struct HomeView_Previews: PreviewProvider {
static var previews: some View {
HomeView(deeds: deedsData)
}
}
字符串
DeedModel.swift
import SwiftUI
struct Deed: Identifiable {
var id = UUID()
var title: String
var URL: String
}
let deedsData: [Deed] = [
Deed(title: NSLocalizedString("civilCode", comment: "Civil code"), URL: "https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU19640160093/U/D19640093Lj.pdf"),
Deed(title: NSLocalizedString("penalCode", comment: "Penal code"), URL: "https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU19970880553/U/D19970553Lj.pdf"),
Deed(title: NSLocalizedString("civilProcedureCode", comment: "Code of civil procedure"), URL: "https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU19640430296/U/D19640296Lj.pdf"),
Deed(title: NSLocalizedString("familyAndGuardianshipCode", comment: "Family and guardianship code"), URL: "http://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU19640090059/U/D19640059Lj.pdf"),
Deed(title: NSLocalizedString("laborCode", comment: "Labor code"), URL: "https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU19740240141/U/D19740141Lj.pdf"),
]
型
有谁知道如何在MVVM模式中做到这一点?
2条答案
按热度按时间tf7tbtn21#
要使用仅限Apple的框架显示PDF,您需要通过
UIViewRepresentable
使用UIKit:字符串
然后
PDFKitRepresentedView
可以在你的视图层次结构中使用。这需要一个
Data
对象作为输入,所以你需要先通过网络调用将这些URL
对象转换为Data
。所以,你可以这样做:型
请记住,这是大大简化-你会想做一些错误处理,等等可能想做一些搜索SwiftUI网络调用。
0aydgbwb2#
自iOS 14以来,有一些不错的视图修改器可用:.quickLookPreview($url)
字符串