gpt4 book ai didi

SwiftUI:如果在 ScrollView 中滚动,则禁用按钮选择

转载 作者:行者123 更新时间:2023-12-05 05:07:31 35 4
gpt4 key购买 nike

我在使用 SwiftUI 时遇到了麻烦,我有一个垂直的 ScrollView,它由垂直堆叠的按钮组成。当我开始滚动时,有两种结果:

  1. 如果我在手指放在按钮上时开始滚动,当滚动停止时,按钮操作会触发。
  2. 如果我在手指放在按钮之间的填充物上时开始滚动,当滚动停止时,不会发生任何操作。

我的问题:有什么方法可以防止在上面的场景 (1.) 中触发按钮操作,即禁用按钮或仅允许在滚动停止/静止时触发操作?

ScrollView(.vertical) {

ForEach(0...5, id: \.self) { i in

VStack(alignment: .leading, spacing: 15) {

Button(action: {
print("selected")
}) {
Text("Button \(i)")
}
}
}
}

我尝试在代码块之后标记 .gesture(),但它只能识别 DragGesture().onChanged() 而不是 DragGesture( ).onEnded()。我考虑过尝试检测拖动开始的位置并将该点与屏幕上所有按钮的位置进行交叉引用,但这似乎有点过分。

如有任何帮助、建议或替代方案,我们将不胜感激!

最佳答案

尝试使用 View 而不是按钮。使用点击手势和(可能)手势 mask 。

关于SwiftUI:如果在 ScrollView 中滚动,则禁用按钮选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59025216/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com