【发布时间】:2021-10-13 12:41:25
【问题描述】:
我在尝试导出文件时尝试显示 ProgressView。该文件是一个大文件,我正在使用fileExporter 修饰符。在 ZStack 中拥有 ProgressView 并将 zIndex 设置为 1 不起作用。我还尝试将长操作(获取文档)放入 DispatchQueue 但挑战在于它不是视图并且无法编译。以下是我目前拥有的代码。
这是我所期待的: 在我按下“导出文件”按钮后,我应该在创建文档时看到一个旋转的圆圈(在本例中是模拟长时间操作的 2 秒睡眠命令)。 之后应该显示来自 fileExporter 的“移动”表
非常感谢任何帮助。
这是一个示例应用程序:
struct ContentView: View {
@State private var isExporting: Bool = false
var body: some View {
VStack {
Button(action: {
isExporting = true
}, label: {
Text("Export File")
})
.padding()
if isExporting {
ProgressView() {
ZStack{}
.fileExporter(isPresented: $isExporting, document: FileExport(contents: "This is a simple Text"), contentType: .plainText) { result in
if case .success = result {
print(try! result.get())
print("File Saved")
} else {
print("File Not Saved")
}
}
}
}
}
}
}
struct FileExport: FileDocument {
static var readableContentTypes: [UTType] {[.plainText]}
var contents: String
init(contents: String) {
self.contents = contents
sleep(2) // simulate a long operation
}
init(configuration: ReadConfiguration) throws {
contents = ""
}
func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper {
return FileWrapper(regularFileWithContents: contents.data(using: .utf8)!)
}
}
【问题讨论】:
-
什么是
UTType?我的 xcode 说在范围内找不到类型“UTType”!你的xcode版本是什么?我应该导入一些东西吗? -
@swiftPunk
UTType是UniformTypeIdentifiers包的一部分:import UniformTypeIdentifiers