swift - 从主要异步 SwiftUI 执行代码行
问题描述
我正在尝试在 SwiftUI 中编写一些代码,以便截取 UI 的屏幕截图,但我希望视图的某些部分在截取屏幕截图之前消失,因此它们不包括在内。我需要按顺序执行这些步骤,所以我使用了
DispatchQueue.global(qos: .background).async {
}
但是我收到一个从后台线程组调用的错误UI API
所以我尝试了
DispatchQueue.main {
}
但是当我把三行代码放在那里(隐藏元素、截屏、显示元素)时,它们是同时执行的。所以我不确定如何让这三行代码一个接一个地执行。
使用条件语句似乎也不起作用......
while true {
if self.hideElements != true {
self.hideElements = true
} else {
takeScreenshot()
self.hideElements = false
break
}
}
hideElements 是一个 State 变量,当设置为 true 时将元素的不透明度设置为 0
提前致谢 :)
解决方案
推荐阅读
- vue.js - 无法读取属性全局变量Vuejs
- r - R Shiny,找不到对象“输入”
- python - 在 IPython 中运行 ProcessPoolExecutor
- python - 使用 pyodbc 将 access 数据库连接到 python 时遇到问题-尝试读取数据
- html - 如何在 python 文本编辑器中运行 HTML 文件
- c++ - 如何在对象组合中正确使用 + 运算符?
- excel - 仅在文件打开时评估 Excel Online 中的公式一次?
- c++ - 由于 Linux 上的编译器变化,安装的库和我的代码之间存在冲突
- javascript - 我们可以在 JavaScript 的自定义函数中使用预定义函数吗?
- apache-kafka - 启用 SASL 身份验证时,Kafka 从 Zookeeper 收到 Sasl 异常