【发布时间】:2021-08-31 13:59:34
【问题描述】:
我在 SwiftUI 视图中有一个列表。在 UIHostingController 中。我想根据列表的滚动方向隐藏或显示 UINavigationBar。这个 UINavigationBar 在 UIHostingController 的 UIkit 中。 我尝试添加 DragGesture,但它没有提供滚动方向的持续更新。
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0 {
navigationController?.setNavigationBarHidden(true, animated: true)
} else {
navigationController?.setNavigationBarHidden(false, animated: true)
}
}
基本上,我需要在 SwiftUI 中替换上述代码。
请不要推荐 LazyList 或任何与 iOS 14 相关的解决方案,因为我的最低 iOS 目标是 iOS 13。
【问题讨论】:
-
添加一些额外的信息,看看这可能对你有帮助:How to make a SwiftUI List scroll automatically?
-
你有什么理由使用 UIKit 吗?在纯 SwiftUI 中使用自定义 ScrollView 怎么样?
-
@mahan 我只为 UInavigationBar 使用 uikit,因为我们在整个应用程序中都有通用的导航栏。我只需要知道 Swiftui 本身中列表的滚动方向。
-
这是否回答了您的问题stackoverflow.com/a/63216812/12299030?
标签: ios swift swiftui swiftui-list