Swiftui:将选择器中的选定文本与前沿对齐

Posted

技术标签:

【中文标题】Swiftui:将选择器中的选定文本与前沿对齐【英文标题】:Swiftui: align selected text in picker to leading edge 【发布时间】:2021-05-25 14:03:40 【问题描述】:

目前我有一个 Section 包含在 Form 中的 picker 我想要达到的是将 picker 的选定值与 ios 13 和 14 中的前导对齐,我尝试了很多解决方案,例如labelsHidden(),但没有结果,请在iOS 14上找到生成以下屏幕截图的代码示例,任何帮助将不胜感激

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)
                        
                    
                
            
        
    

【问题讨论】:

似乎只有在Form 内使用Picker 时才会出现问题... @aheze 实际上我需要去一个单独的屏幕从数组中选择一些值,这就是为什么在这种情况下Form 是必要的 【参考方案1】:

HStack() 中使用Text()Spacer()

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()
                            
                        
                    
                
            
        
    

【讨论】:

以上是关于Swiftui:将选择器中的选定文本与前沿对齐的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 绑定到选择器的变量与选择器的选定值不匹配

选择器中的 SwiftUI 和枚举

SwiftUI Picker 专注于视图中的选定项目

SwiftUI:对齐文本

从 SwiftUI 颜色选择器中获取价值

如何知道用户在 SwiftUI 中的日期选择器中触摸了哪一天