isMomentary 上 SegmentedPickerStyle Swiftui
Posted
技术标签:
【中文标题】isMomentary 上 SegmentedPickerStyle Swiftui【英文标题】:isMomentary on SegmentedPickerStyle Swiftui 【发布时间】:2021-04-19 10:30:04 【问题描述】:尝试在 SwiftUI 中设置 isMomentary
或 Picker
SegmentedPickerStyle
。
UIKit
UISegmentedControl
有一个布尔值 isMomentary
。
寻找如何实现 SwiftUI
【问题讨论】:
【参考方案1】:这是我如何处理它的一个例子。基本上你让你的选择器将它的选择设置回你想要的任何默认值。在此示例中,我有一个分段选择器,其中包含 2 -> 50 英里的 5 倍选项。我可以在与该选择相对应的选择之后执行操作;之后它将返回到默认状态。您可以为此添加延迟或动画以使其更流畅,但这超出了本问题的范围。
@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
【讨论】:
我尝试了这种方法,只是试图避免,因为如果用户希望执行该段的操作,他们将不得不取消选择并重新选择该段。我不赞成强硬,因为这是一个解决方案。谢谢 如果它正在这样做,你会在某处丢失绑定。请注意,在我的示例中,我在操作完成后将范围设置回 2。这应该将 UI 更新回其位置。它可能需要在 DispatchQueue 中以上是关于isMomentary 上 SegmentedPickerStyle Swiftui的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess:在所有页面上强制 www,在一个页面上强制 https,在所有其他页面上强制 http