SwiftUI 2.0 TabView禁用滑动以更改页面

时间:2020-07-30 07:15:10

标签: xcode swiftui tabview

我有一个使用swiftUI 2.0 PageTabViewStyle的TabView。有什么方法可以禁止滑动来更改页面吗?

我在第一个选项卡视图中有一个搜索栏,但是如果用户正在键入,我不想让其处于打开状态,我基本上希望将其锁定在该屏幕上,直到上述功能为止完成。

这是显示差异的gif文件,我希望在gif全屏显示时禁用制表符更改。 https://imgur.com/GrqcGCI

2 个答案:

答案 0 :(得分:1)

尝试以下类似方法(已通过一些存根代码进行了测试)。这个想法是在某些情况下(如果您是开始编辑的话)阻止标签页视图的拖动手势

@State var isSearching = false

// ... other code

TabView {
    // ... your code here

    Your_View()
       .gesture(isSearching ? DragGesture() : nil)  // blocks TabView gesture !!
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))

答案 1 :(得分:0)

对于任何试图解决这个问题的人,我设法通过将 TabView 状态设置为禁用来做到这一点。

TabView(selection: $currentIndex.animation()) {
    Items()
 }.disabled(true)