SwiftUI:如何检测列表滚动?

14

我有一个视图,顶部有一个搜索栏和下面的 SwiftUI List。我需要检测当 List 滚动时,以便我可以关闭搜索栏键盘。当 List 滚动时如何调用一些代码呢?谢谢!


1
添加拖动手势。 - E.Coms
1个回答

33

我建议使用以下方式中的simultaneousGesture修饰符:

List {
  // ... your list items
}
.simultaneousGesture(DragGesture().onChanged({ _ in
    // if keyboard is opened then hide it
}))

更新:已经通过Xcode 13.3 / iOS 15.4进行验证 - 对于PO所制定的用例仍然有效。


2
有人能解释一下这里发生了什么吗?也就是说,为什么这个能够工作? - Bret
2
不适用于我。 - leonboe1
1
onChanged闭包只被调用一次。这是什么原因? - PGDev
2
该解决方案可以防止任何滑动操作平稳工作。 - Pig Dog Bay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接