iPad 上的 Swift Playgrounds 无法按预期使用 SwiftUI 代码

Posted

技术标签:

【中文标题】iPad 上的 Swift Playgrounds 无法按预期使用 SwiftUI 代码【英文标题】:Swift Playgrounds on iPad Not Working with SwiftUI code as Expected 【发布时间】:2021-01-21 16:22:14 【问题描述】:

附加的代码在 Mac 的 Playgrounds 模拟器上按预期工作,但当相同的代码在 iPad 上运行时,美国不会注册视图更新。有人知道已知问题/修复/解决方法吗?

import SwiftUI
import PlaygroundSupport

struct MathGame: View

    @State var showAnswer = false
    @State var answer = ""
    @State var x = Int.random(in: 0...100)
    @State var y = Int.random(in: 0...100)
    var body: some View
    
        VStack
        
            Text(x.description)
            Text(y.description)
            if showAnswer
            
                let z = x + y
                Text(z.description)
             else
            
                Text(" ")
            

            
            Button("Next Question")
                
                showAnswer = false
                x = Int.random(in: 0...100)
                y = Int.random(in: 0...100)
            
            Spacer()
            Toggle(isOn: $showAnswer)
            
                Text("Show Answer")
             
        .padding().font(.system(size: 64))
    


PlaygroundPage.current.setLiveView(MathGame())

【问题讨论】:

什么在这里不起作用?你能提供更多细节吗? 很抱歉。当单击显示答案时,没有任何变化(未显示答案)。好像切换没有注册,但您可以看到切换已打开,但答案仍为空白。 适用于 Xcode 12.1 / ios 14.1。您使用哪些版本? 在 iPad/Playgrounds 3.4、Swift 5.3、iOS 14.3 上运行, 【参考方案1】:

我遇到了同样的问题,我刚刚发现将“显示结果”设置为 false 可以解决这个问题。

我的 iPad 在 iOS 14.6 上运行。我希望带有 iOS 15 的新 Swift Playground 肯定能解决这个问题。

【讨论】:

以上是关于iPad 上的 Swift Playgrounds 无法按预期使用 SwiftUI 代码的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 Swift Playgrounds,NSLog 在 macOS 上的“Console.app”上不显示任何消息

您如何在 Swift Playgrounds 中的 iPad 上的 SwiftUI 中渲染 Text("Content") 与 Mac 上的 Xcode?

检测 iPad 的方向 - Swift Playgrounds

如何在 iPad 上让 Swift Playgrounds 无边界?

在 iPad 版 Swift Playgrounds 中显示 TableView

Swift Playgrounds 4上线,在iPad上也能编程了