在 SwiftUI 中更改分段控制器属性

Posted

技术标签:

【中文标题】在 SwiftUI 中更改分段控制器属性【英文标题】:Change Segmented Controller properties in SwiftUI 【发布时间】:2021-02-14 19:56:48 【问题描述】:

我正在尝试在 SwiftUI 中创建分段控制器。到目前为止,这是我的代码:

Picker(selection: $currentStatus, label: Text("Treatment Status")) 
            ForEach(status, id: \.self) 
                Text($0)
            
        
        .pickerStyle(SegmentedPickerStyle())

这就是它的样子:

这很好,但我想更改分段控制器的属性,使其看起来像这样:

我尝试查找有关如何在 SwiftUI 中修改分段控制器的任何教程,但找不到任何内容。任何帮助将不胜感激!

【问题讨论】:

暂时不能修改 SegmentedPickerStyle,自己实现即可。 【参考方案1】:

这是一个看起来像上面的视图,就像一个选择器,看看这是否可以工作:

struct MinimalPickerView: View 
        @State var selected = "Pendiente"
        let labels = ["Pendiente", "Atendido", "Cancelado", "Ausente"]
    
        var body: some View 
            HStack 
                ForEach(labels, id: \.self)  label in
                    VStack 
                        Text(label).padding(2)
                        Rectangle()
                            .frame(height: 7)
                            .foregroundColor((selected == label) ? .black : .clear)
                    
                    .onTapGesture 
                        selected = label
                    
                    .padding(2)
                
            
        


【讨论】:

以上是关于在 SwiftUI 中更改分段控制器属性的主要内容,如果未能解决你的问题,请参考以下文章

在视图控制器中创建 Publishable 属性,将其传递给 SwiftUI 视图并监听视图控制器内部的更改?

SwiftUI 分段控制

如何使用 SwiftUI 在 MacOS 上配置多选分段控制

如何在 SwiftUI 中更改分段选取器的颜色外观?

如何更改不同分段控制索引的数据源

SwiftUI:使用 Picker(分段)更改 ForEach 源或获取请求