滚动时异步更新ScrollView内部的视图

时间:2020-08-04 20:40:02

标签: swift swiftui

我有一个视图,它在出现时会异步更新。 它通过获取一些数据并显示它们的发布者进行更新。 我将此视图放入包装在List中的ForEach中(但与ScrollView中的相同)。

问题是只要我滚动出现的子视图,直到我从屏幕上松开手指时,它们才会更新。 我找到了一个解决方案(在this question之后)放在ObservableObject这个队列中:

private let queue = DispatchQueue(label: "datafetching.queue", attributes: .concurrent)

并将.receive(on: queue)添加到发布者。

这似乎可行,但是当我这样做时,SwiftUI会说:不允许从后台线程发布更改;确保在模型更新时从主线程(通过诸如receive(on :)之类的运算符)发布值。

此外,某些子视图开始错误地更新。

0 个答案:

没有答案