gpt4 book ai didi

ios - 在 SwiftUI 中使用用户输入来执行计算

转载 作者:行者123 更新时间:2023-11-28 05:36:58 25 4
gpt4 key购买 nike

我正在做一个学校项目,在这个项目中我必须找到一个人在不同星球上的重量,但我很困惑我应该如何使用输入并将其乘以每个星球上的重力。

此外,我不确定权重是否是一个整数并且可以与另一个数字相乘。

这是我的代码:

struct PlanetDetail: View {
let planet : Planet
@State var weight = ""

var body: some View {
VStack {
Text(planet.name)
Text("Gravity on mercury is\(planet.gravity)")
TextField( "Enter your weight", text:$weight)
Text("your weight on \(planet.name) is ")
}
}
}

最佳答案

你已经像这样指定了你的权重变量:

@State var weight = ""

通过分配空字符串 (""),您已将权重声明为字符串。

为了将该值与整数相乘,您需要将字符串值转换为整数。

您还需要处理用户可以在您的文本输入中输入非数字值的情况。

相反,将权重值存储为整数。

您可以通过创建当用户在文本字段中输入值时使用的绑定(bind)来解决这个问题。例如:

 @State var weight = 0

var body: some View {
let weightProxy = Binding<String>(
get: { String(format: "%.02f", Int(self.weight)) },
set: {
if let value = NumberFormatter().number(from: $0) {
self.weight = value.intValue
}
}
)

然后您可以将您的 TextField 绑定(bind)到 weightProxy:

TextField( "Enter your weight", text:$weightProxy)

最好的情况是拥有一个只接受数字的 TextField。这需要更多的工作,但可能是下一个要解决的好项目!

关于ios - 在 SwiftUI 中使用用户输入来执行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58346002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com