swift - 在 SwiftUI 文本中显示已发布的整数

标签 swift swiftui swiftui-environment

我是 SwiftUI 的新手,遇到了以下问题:

我有一个包含一些整数值的模型,如下所示:

class Game: ObservableObject {

    @Published var ownScore:Int = 0
    @Published var opponentScore:Int = 0

    ... some methods
}

我还需要一个 View 来显示这些分数,并在任何这些值发生变化时得到更新。 我需要一些与此类似的东西,但是,这不起作用,因为这些值是已发布的整数。

struct ScoreView: View {
    @EnvironmentObject var game: Game
    @State var displayOpponent: Bool

    var body: some View {
        VStack {
            if displayOpponent {
                Text("Opponent Score")
                Text("Score: \(game.$opponentScore)")
            } else {
                Text("Your Score")
                Text("Score: \(game.$ownScore)")
            }

        }
    }
}

关于如何正确实现这个的任何想法?

最佳答案

仅在文本中使用属性,在发布时它们将自动更新

struct ScoreView: View {
    @EnvironmentObject var game: Game
    @State var displayOpponent: Bool

    var body: some View {
        VStack {
            if displayOpponent {
                Text("Opponent Score")
                Text("Score: \(game.opponentScore)")   // no $ 
            } else {
                Text("Your Score")
                Text("Score: \(game.ownScore)")        // no $
            }

        }
    }
}

关于swift - 在 SwiftUI 文本中显示已发布的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61117748/

相关文章:

swift - 给 adjustsFontSizeToFitWidth 间距

swiftui - 在 ViewModifier 中使用 GeometryReader 不会渲染 View

swiftui - .environmentObject() View 运算符与 @EnvironmentObject 的目的是什么?

binding - SwiftUI 在多个类之间传递数据

Swift 3 使用 Table View 显示 Parse 对象 - 如何限制显示的对象数量

ios - Xcode 模拟器打开。 Jenkins space 由于音频引擎导致自动化测试崩溃

ios - Swift:Web 服务 API 调用在某些网络上返回错误

ios - FetchedResults 不会触发和 SwiftUI 更新,但上下文会成功保存它

ios - 为什么我们不能在swiftUI预览中传递实例变量?

SwiftUI:基于@Published 变量对列表进行排序