当我尝试使用Timer和.onReceive(timer)
修饰符更新SwiftUI视图中的文本时,视图冻结。
import SwiftUI
import Combine
import AVFoundation
var globalText: String = "abc"
struct ContentView : View {
@State private var myText = globalText
let timer = Timer.publish(every: 1, on: .current, in: .default)
.autoconnect()
var body: some View {
ZStack {
AVContainer().ignoresSafeArea()
Text(myText)
.onReceive(timer) { _ in myText = globalText }
.font(.largeTitle)
}
}
}
struct AVContainer : UIViewRepresentable { ... }
我做错了什么?
1条答案
按热度按时间blmhpbnm1#
最近我的AR应用也遇到了类似的问题。在本例中,您需要在ContentView结构中声明并示例化视图,然后在AVContainer结构中创建其绑定变量。我不能解释为什么下面的方法有效,但它肯定有效-不再有冻结。