首页 > 解决方案 > 从主要异步 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

提前致谢 :)

标签: swiftasynchronousswiftui

解决方案


推荐阅读