gpt4 book ai didi

swiftui - 标签在 SwiftUI 中的作用是什么?

转载 作者:行者123 更新时间:2023-12-04 00:54:51 25 4
gpt4 key购买 nike

我对标签的作用感到困惑。
当我删除标签时,我只能选择“M”,然后添加,我可以选择所有选项。
当我制作整数数组选择器时,标签的存在根本无关紧要。
但问题发生在字符串数组中。
我想知道为什么会发生这种情况。

import SwiftUI

struct InitGender: View {
@ObservedObject var initData : InitData
@ObservedObject var initViewRouter : InitViewRouter
let genderRange = ["M","F"]

var body: some View {
VStack {
Text("Select your gender")
.font(.title)
.bold()

Picker("Select gender", selection : $initData.gender) {
ForEach(0..<genderRange.count) {
Text(self.genderRange[$0]).tag(self.genderRange[$0])
}
}
.labelsHidden()
.clipped()
}
}
}

最佳答案

SwiftUI Picker通过 tag 检测选择或通过 id , 对于此类选择和 tag (或 id )必须相同。
这是一个演示(使用 Xcode 12/iOS 14 测试)

struct InitGender: View {
@State private var selection: String = "M"
let genderRange = ["M","F"]

var body: some View {
VStack {
Text("Select your gender")
.font(.title)
.bold()
Text("Selected: \(selection)")

Picker("Select gender", selection : $selection) {
ForEach(0..<genderRange.count) {
Text(self.genderRange[$0]).tag(self.genderRange[$0])
}
}
.labelsHidden()
.clipped()
}
}
}
Picker 的替代工作变体
Picker("Select gender", selection : $selection) {
ForEach(genderRange, id: \.self) {
Text($0)
}
}

关于swiftui - 标签在 SwiftUI 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63322845/

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