SwiftUI ProgressView 没有更新 Button 闭包中的进度值

SwiftUI ProgressView is not updating progress value within Button closure

这是我在 iPad 上的 Swift Playgrounds 中创建的一个相当简单的示例,但我在更大的 Xcode 项目中遇到了同样的问题。每当我单击按钮时,我都会尝试更新进度视图,以便向用户显示数据中还剩下多少(在本例中)名称。但是进度视图只是不想更新。有什么建议吗?

导入SwiftUI

构造 ContentView:视图 {

let names = ["Tim", "Peter", "Jennifer", "Wolfgang"]
@State private var index = 0
@State private var progress = 0.0
var body: some View {
    VStack(spacing: 50) {
        Text(names[index])
                .font(.title)
        ProgressView(value: progress)
            .progressViewStyle(.linear)
            .padding(.horizontal)
        Button("Next") {
            if index < names.count - 1 {
                index += 1
                progress += Double(1 / names.count)
            } else {
                index = 0
            }
        }
        
    }
}

}

提前致谢

您的 progress 始终为 0,因为 Double(1 / names.count) 始终 returns 0。在除以 1 之前,您必须将 names.count 转换为 Double

解决方案

尝试progress += 1 / Double(names.count)