【发布时间】:2020-11-19 21:27:59
【问题描述】:
我有一个使用 swiftUI 2.0 PageTabViewStyle 的 TabView。有什么办法可以禁用滑动换页吗?
我的第一个标签视图中有一个搜索栏,但是如果用户正在输入,我不想让他们能够更改他们的状态,我基本上希望它被锁定在该屏幕上,直到所述功能完成了。
这是一个显示差异的 gif,我希望在 gif 全屏时禁用标签更改。 https://imgur.com/GrqcGCI
【问题讨论】:
我有一个使用 swiftUI 2.0 PageTabViewStyle 的 TabView。有什么办法可以禁用滑动换页吗?
我的第一个标签视图中有一个搜索栏,但是如果用户正在输入,我不想让他们能够更改他们的状态,我基本上希望它被锁定在该屏幕上,直到所述功能完成了。
这是一个显示差异的 gif,我希望在 gif 全屏时禁用标签更改。 https://imgur.com/GrqcGCI
【问题讨论】:
试试下面的方法(用一些存根代码测试)。这个想法是在某些条件(在您的情况下开始编辑)发生时阻止选项卡视图拖动手势
@State var isSearching = false
// ... other code
TabView {
// ... your code here
Your_View()
.gesture(isSearching ? DragGesture() : nil) // blocks TabView gesture !!
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
【讨论】:
indexDisplayMode,您可以通过将其设置为.never @JacobWood 来删除它们
对于任何试图解决这个问题的人,我设法通过将 TabView 状态设置为禁用来做到这一点。
TabView(selection: $currentIndex.animation()) {
Items()
}.disabled(true)
编辑:如 cmets 中所述,这也会禁用 TabView 中的所有内容
【讨论】: