SegmentedPickerStyle Swiftui 上的 isMomentary
isMomentary on SegmentedPickerStyle Swiftui
正在尝试在 SwiftUI 中设置 isMomentary
of Picker
SegmentedPickerStyle
。
UIKit
UISegmentedControl
有一个 Bool isMomentary
.
寻找如何为 SwiftUI
实现同样的功能
这是我如何处理它的一个例子。基本上你让你的选择器将它的选择设置回你想要的任何默认值。在这个例子中,我有一个分段选择器,有 5x 个选项,从 2 -> 50 英里。我可以在与该选择相对应的选择之后执行操作;之后它将 return 恢复为默认状态。您可以为此添加延迟或动画以使其更流畅,但这超出了本题的范围。
@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
}
正在尝试在 SwiftUI 中设置 isMomentary
of Picker
SegmentedPickerStyle
。
UIKit
UISegmentedControl
有一个 Bool isMomentary
.
寻找如何为 SwiftUI
实现同样的功能这是我如何处理它的一个例子。基本上你让你的选择器将它的选择设置回你想要的任何默认值。在这个例子中,我有一个分段选择器,有 5x 个选项,从 2 -> 50 英里。我可以在与该选择相对应的选择之后执行操作;之后它将 return 恢复为默认状态。您可以为此添加延迟或动画以使其更流畅,但这超出了本题的范围。
@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
}