我正在尝试创建一个 SwiftUI Scrollview 来拖动其容器,如下所示:https://drive.google.com/file/d/1O92DgsVI1OjM1HEUXUwVywB8gcdShOP-/view?usp=sharing https://drive.google.com/file/d/1O92DgsVI1OjM1HEUXUwVywB8gcdShOP-/view?usp=sharing
许多苹果应用程序都使用它(苹果地图、音乐、钱包等),但我还没有找到一种简单的方法来使用 SwiftUI 来做到这一点。您认为简单地实现这一点的最佳方法是什么?
我看过这里的大多数图书馆https://github.com/search?q=swiftui+drawer https://github.com/search?q=swiftui+drawer但他们都没有实现带有可以拖动视图的 ScrollView 的抽屉。
我还尝试将自定义 UIScrollView 实现为 UIViewRepresentable ,并尝试调整 scrollViewWillBeginDragging() 但无法使其工作。
好吧,我在开发时遇到了这个问题抽屉式包装 https://github.com/bwide/SwiftUI-Drawer我自己,并且我相信我能够使用遗留的解决方案UIscrollView
and a UIViewRepresentable
包装纸。
如果您想使用以前已有的软件包,我最终会这样做:
在我的抽屉里,我添加了这个旧版滚动视图 https://github.com/bwide/LegacyScrollView包装纸。
LegacyScrollView(.vertical, showsIndicators: showsIndicators) {
content
}
.onDragShouldBegin { pan, scrollView in
/// touch shouldn't begin when scrolling past zero content offset
scrollView.contentOffset.y - pan.translation(in: scrollView).y > 0
}
使用这个包装器我可以访问 UIScrollView 的gestureRecognizerShouldBegin(_:)
并通过 SwiftUI 修饰符覆盖它
Result https://github.com/bwide/SwiftUI-Drawer/blob/main/Media/DrawerScrollableContent.gif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)