isMomentary 上 SegmentedPickerStyle Swiftui

Posted

技术标签:

【中文标题】isMomentary 上 SegmentedPickerStyle Swiftui【英文标题】:isMomentary on SegmentedPickerStyle Swiftui 【发布时间】:2021-04-19 10:30:04 【问题描述】:

尝试在 SwiftUI 中设置 isMomentaryPicker 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的主要内容,如果未能解决你的问题,请参考以下文章

电脑上GetTickCount64在哪里

.htaccess:在所有页面上强制 www,在一个页面上强制 https,在所有其他页面上强制 http

为啥当我在 grails 上删除一对多关系上的父级时,会在子级上调用 beforeInsert 事件?

地理定位在笔记本电脑上工作,但不在智能手机上

键盘上的PERIOD键在啥地方?

工作上996,生活上669,并不是什么难事儿!