Ios 基于内容偏移设置导航栏上/下动画

Ios 基于内容偏移设置导航栏上/下动画,ios,swift,uinavigationcontroller,uinavigationbar,scrollview,Ios,Swift,Uinavigationcontroller,Uinavigationbar,Scrollview,我想实现Twitter的导航栏动画。当您向上滚动(表视图或集合视图)时,导航栏将使用内容设置动画,然后固定到安全区域插图。当内容向下滚动时,它将被设置为动画 到目前为止,我有一个导航栏,它可以使我的表格视图向上滚动,但只有当整个列表到达顶部时才会向下滚动。我将如何添加以下功能 将导航栏底部固定到安全区域插图上 当用户向下滚动时,重新设置导航栏的动画 工作代码 代码示例 func scrollViewDidScroll(_ scrollView: UIScrollView) {

我想实现Twitter的导航栏动画。当您向上滚动(表视图或集合视图)时,导航栏将使用内容设置动画,然后固定到安全区域插图。当内容向下滚动时,它将被设置为动画

到目前为止,我有一个导航栏,它可以使我的表格视图向上滚动,但只有当整个列表到达顶部时才会向下滚动。我将如何添加以下功能

  • 将导航栏底部固定到安全区域插图上
  • 当用户向下滚动时,重新设置导航栏的动画
  • 工作代码 代码示例

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
            // Safe Area Insets
            let topAreaInset: CGFloat = UIApplication.shared.windows.filter{$0.isKeyWindow}.first?.safeAreaInsets.top ?? 0
            // Nav Bar Height
            let navigationBarHeight: CGFloat = navigationController?.navigationBar.frame.height ?? 0
            // Total Offset
            let yOffset: CGFloat = scrollView.contentOffset.y + navigationBarHeight + topAreaInset
            // Move NavigationBar
            navigationController?.navigationBar.transform = .init(translationX: 0, y: min(0, -yOffset))
        }