【发布时间】:2021-04-07 23:45:44
【问题描述】:
我在 SwiftUI 中的 PageViewTabStyle 中有一个 TabView,因此我可以在页面之间滑动。我想要一个“锁定”当前视图的设置,因此用户无法滑动。谷歌搜索和阅读文档对我来说没有任何明显的发现,所以我希望 SO 上的专家能帮助我。
简而言之,我的代码看起来像
TabView {
ForEach(0..<5) { idx in
Text("Cell: \(idx)")
}
}
.tabViewStyle(PageTabViewStyle())
我找到了disabled 属性,但似乎整个视图上的所有点击事件都被忽略了 - 我只是想阻止用户切换标签(或者,在这种特殊情况下,滑动或按下页面点切换页面)。我已经尝试了here 的解决方案,其中gesture 属性设置为nil,但这似乎并没有真正阻止滑动手势更改页面(不过indexDisplayMode 位很好! )
非常感谢任何帮助!谢谢!
【问题讨论】:
-
见下文 - 以上
gesture解决方案有效!但是,当有例如onTapGesture的子视图时,子视图仍然会拦截滑动以更改页面。我想要允许触摸交互的子视图:) -
子视图是什么意思?在 ZStack 中?对于代码原样,
Text元素没有任何子视图,因此您还需要将阻止手势添加到其他超级视图
标签: ios swiftui swiftui-tabview