【发布时间】:2020-11-26 19:34:46
【问题描述】:
我有一个列表,我想在列表向上滚动时隐藏一个工具栏和标签栏。
我尝试使用以下方法检测运动:
.gesture(
DragGesture()
.onChanged { value in
if value.translation.height > 0 {
print("Scroll down")
} else {
print("Scroll up")
}
}
.onEnded{ value in
print("ended")
}
)
这会间歇性地工作,因为只有大约 80% 的时间,它似乎只在我慢慢地或者当我将手指直接放在屏幕上然后滚动时才检测到滚动。否则什么都没有。另外,onEnded 永远不会在这里触发。
我也试过这个:
.gesture(
DragGesture(minimumDistance: 0, coordinateSpace: .local)
.onChanged { value in
print(value.translation.height)
if value.translation.height > 0 {
print("Scroll down")
} else {
print("Scroll up")
}
}
.onEnded{ value in
print("ended")
print(value.location.y)
}
)
这捕获了我所有的滚动,这很棒。 onEnded 也会触发,但问题是我的列表实际上并没有滚动。
我在这里不知所措,我想知道用户何时向上滚动,向下滚动,滚动多少,如果可能的话,我想知道用户何时到达列表顶部。
【问题讨论】:
-
您是如何将额外的
DragGesture添加到List的?
标签: swiftui swiftui-list