SwiftUI:将选择的文本在 Picker 中对齐到前缘

4

我目前在一个表单(Form)中包括一个段落(Section),其中还有一个选择器(picker)。我想要实现的是,在iOS 13和14中将所选的选择器(picker)值对齐到开头位置。我已经尝试了许多解决方案,比如使用labelsHidden()方法,但都没有效果。请帮忙查看生成以下iOS 14截图的代码示例。感激不尽。enter image description here

struct ContentView: View {
    @State private var selectedStrength = "Mild"
    let strengths = ["Mild", "Medium", "Mature"]

    var body: some View {
        NavigationView {
            Form {
                Section {
                    Picker("", selection: $selectedStrength) {
                        ForEach(strengths, id: \.self) {
                            Text($0)
                        }
                    }
                }
            }
        }
    }
}

1
似乎只有在Form内使用Picker时才会出现问题... - aheze
@aheze 实际上我需要进入一个单独的屏幕来从数组中选择一些值,这就是为什么在这种情况下需要使用 Form 的原因。 - Hesham Ali Kamal
2个回答

7
HStack()中使用Spacer()Text()
struct ContentView: View {
    @State private var selectedStrength = "Mild"
    let strengths = ["Mild", "Medium", "Mature"]

    var body: some View {
        NavigationView {
            Form {
                Section {
                    Picker("", selection: $selectedStrength) {
                        ForEach(strengths, id: \.self) { t in
                            HStack {
                                Text(t)
                                Spacer()
                            }
                        }
                    }
                }
            }
        }
    }
}

2

你需要使用 .frame() 和 .labelsHidden() 方法。

struct ContentView: View {
@State private var selectedStrength = "Mild"
let strengths = ["Mild", "Medium", "Mature"]

var body: some View {
    NavigationView {
        Form {
            Section {
                Picker("", selection: $selectedStrength) {
                    ForEach(strengths, id: \.self) {
                        Text($0)
                    }
                }
                .frame(width: 160, alignment: .leading)
                .labelsHidden()
            }
        }
    }
}

}

已在IOS 16上测试


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接