isMomentary on SegmentedPickerStyle Swiftui 功能

问题描述

尝试在 SwiftUI 中设置 isMomentary of Picker SegmentedPickerStyle

UIKit UISegmentedControl一个布尔值 isMomentary

正在寻找如何为 SwiftUI

实现相同的目标

解决方法

这是我如何处理它的一个例子。基本上你让你的选择器将它的选择设置回你想要的任何默认值。在此示例中,我有一个分段选择器,其中包含 2 -> 50 英里的 5x 选项。我可以在对应于该选择的选择之后执行操作;之后它将返回其默认状态。您可以为此添加延迟或动画以使其更流畅,但这超出了本问题的范围。

@State var selectedRange = 2
//someView {...

                    Picker(selection: selectedRange,label: Text("Search Radius")) {
                        Text("2 miles").tag(0)
                        Text("5 miles").tag(1)
                        Text("10 miles").tag(2)
                        Text("25 miles").tag(3)
                        Text("50 miles").tag(4)
                    }
                    .pickerStyle(SegmentedPickerStyle())
                    .onChange(of: selectedRange,perform: { value in
                        doAction()
                    })

功能

我实际上在 ViewModel 中有我的,但在这个例子中它在视图本身上。请务必检查范围并将其放在正确的位置。

func doAction() {
    //Do whatever you need to have done.
    switch selectedRange {
        case 0:
            //Do Something.
        default:
            //Do Something
    }
    selectedRange = 2
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...