SwiftUITabViewPageTabViewStyle阻止更改选项卡?
我TabView
在 SwiftUI 中有一个,PageViewTabStyle
所以我可以在页面之间滑动。我想要一个将当前视图“锁定”到位的设置,因此用户无法滑动。谷歌搜索和阅读文档对我来说没有任何明显的意义,所以我希望 SO 上的大师可以帮助我。
简而言之,我的代码看起来像
TabView {
ForEach(0..<5) { idx in
Text("Cell: (idx)")
}
}
.tabViewStyle(PageTabViewStyle())
我找到了该disabled
属性,但随后似乎整个视图中的所有点击事件都被忽略了 - 我只是想阻止用户切换选项卡(或者,在这种特殊情况下,滑动或按下页面点来切换页面)。我已经尝试了从此处将gesture
属性设置为的解决方案nil
,但这似乎并没有真正阻止滑动手势更改页面(不过这indexDisplayMode
点很好!)
任何帮助是极大的赞赏!谢谢!
回答
提到的参考作品中的解决方案,只是滑动不是被 阻止gesture(nil)
,而是被 阻止gesture(DragGesture())
。并且视图应该是全标签内容视图范围的,例如
TabView {
ForEach(0..<5) { idx in
Text("Cell: (idx)")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.contentShape(Rectangle())
.gesture(DragGesture()) // this blocks swipe
}
}
.tabViewStyle(PageTabViewStyle())
使用 Xcode 12.1 / iOS 14.1 测试
*当然,它可以像/sf/answers/4421930201/那样有条件
THE END
二维码