我在PageViewTabStyle的SwiftUI中有一个TabView,所以我可以在页面之间滑动。我希望有一个“锁定”当前视图的设置,这样用户就不能滑动。搜索和阅读文档对我来说并不是什么显而易见的东西,所以我希望so上的大师可以帮助我。
简而言之,我的代码看起来像这样
TabView {
ForEach(0..<5) { idx in
Text("Cell: \(idx)")
}
}
.tabViewStyle(PageTabViewStyle())我已经找到了disabled属性,但是在整个视图上所有的点击事件似乎都被忽略了--我只是想防止用户切换选项卡(或者,在这种情况下,滑动或按下页面点来切换页面)。我尝试了here中的解决方案,其中gesture属性设置为nil,但这似乎并不能真正阻止滑动手势更改页面(尽管indexDisplayMode位很不错!)
任何帮助都是非常感谢的!谢谢!
发布于 2021-01-01 02:47:14
参考文献中提到的解决方案是有效的,只是滑动被gesture(DragGesture())而不是gesture(nil)阻止。视图应该是全选项卡-内容-视图范围的,比如
TabView {
ForEach(0..<5) { idx in
Text("Cell: \(idx)")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.contentShape(Rectangle())
.gesture(DragGesture()) // this blocks swipe
}
}
.tabViewStyle(PageTabViewStyle())使用Xcode12.1/ iOS 14.1进行测试
*当然,它可以像在中一样成为有条件的
发布于 2021-07-04 22:49:58
要阻止TabView中的所有滑动手势,您必须使用.simultaneousGesture(DragGesture()),它也会阻止子视图中的所有滑动手势
TabView {
ForEach(0..<5) { idx in
Text("Cell: \(idx)")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.contentShape(Rectangle())
.simultaneousGesture(DragGesture())
}
}
.tabViewStyle(PageTabViewStyle())https://stackoverflow.com/questions/65524458
复制相似问题