首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用"Plus“按钮,在Swift中在屏幕上添加一个新的选择字段

使用"Plus“按钮,在Swift中在屏幕上添加一个新的选择字段
EN

Stack Overflow用户
提问于 2022-04-18 17:04:29
回答 1查看 177关注 0票数 0

首先,谢谢你抽出时间来看这个,伙计们!

我是一位白天盲人/视障人士的老师,并且刚刚开始涉足代码,以创造一些简洁的工具来推进我们的职业。

我正在尝试构建的第一个应用程序是一个评估工具。我已经能够使用形式,与匹克和切换,以相当成功地完成这一过程中的许多学习。

我遇到的最大问题是在记录他们当前的视觉诊断时。我们的大多数孩子都有多重诊断,所以我需要一种方法,让用户为每个孩子添加所需的数量。在@aheze在https://stackoverflow.com/a/69137065/18850386中的回复和一些修改的帮助下,我已经能够使用ForEach语句创建我想要的按钮,但是所选的Picker值是绑定在一起的。这是我目前的代码和图片。

当前代码预览的屏幕快照

代码语言:javascript
复制
@State var eyeConditions = [""]
@State var eyeConditionsList = ""

var body: some View {
    NavigationView {
       Form {
           Section(header: Text("Active Eye Condition(s)")) {
                ForEach(eyeConditions.indices, id: \.self) { index in
                    Picker(
                        selection: $eyeConditionsList,
                        label: Text("Selected Condition:"),
                        content: {
                                Text("").tag("1")
                                Text("Amblyopia").tag("2")
                                Text("Aphakia").tag("3")
                                Text("Astigmatism").tag("4")
                                Text("Bulls Eye Maculopathy").tag("5")
                                Text("Cataract").tag("6")
                                Text("Coloboma").tag("7")
                                Text("Color Blindness").tag("8")
                                Text("Convergence Insufficiency").tag("9")
                                Text("Corneal Scarring").tag("10")
                    })
               }
               Button(action: {
                   eyeConditions.append("")
               }) {
                   Image(systemName: "plus.circle")
                       .foregroundColor(Color.blue)
               
               }
           }
       }
       .navigationBarTitle("Visual Information")
   }
}

我的问题是,如何使每个新创建的Picker值不相互绑定,并显示为单独的值?

谢谢你,我真的很感激你的时间和帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-18 17:21:03

  1. 也将eyeConditionsList声明为数组 @State var eyeConditionsList = "“
  2. 在按钮操作中,还向eyeConditionsList追加一项 按钮(动作:{ eyeConditions.append("") eyeConditionsList.append("")
  3. selection绑定到适当的索引 选择器(选择:$eyeConditionsListindex )

但实际上,您只需要一个@State属性

代码语言:javascript
复制
@State var eyeConditions = [""]

var body: some View {
    NavigationView {
          Form {
              Section(header: Text("Active Eye Condition(s)")) {
                   ForEach(eyeConditions.indices, id: \.self) { index in
                       Picker(
                           selection: $eyeConditions[index],
                           label: Text("Selected Condition:"),
                           content: {
                                   Text("").tag("1")
                                   Text("Amblyopia").tag("2")
                                   Text("Aphakia").tag("3")
                                   Text("Astigmatism").tag("4")
                                   Text("Bulls Eye Maculopathy").tag("5")
                                   Text("Cataract").tag("6")
                                   Text("Coloboma").tag("7")
                                   Text("Color Blindness").tag("8")
                                   Text("Convergence Insufficiency").tag("9")
                                   Text("Corneal Scarring").tag("10")
                       })
                  }
                  Button(action: {
                      eyeConditions.append("")
                  }) {
                      Image(systemName: "plus.circle")
                          .foregroundColor(Color.blue)
                  
                  }
              }
          }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71914811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档