向下滚动时显示导航栏

Display navigationbar when scrolling down

在ViewController的顶部,我有一个图像,我隐藏了导航栏,以获得更好的视觉效果。

如果用户向上滚动,图像会缩放。目前没问题。

如果用户向下滚动,我想用动画显示导航栏(导航栏的正确背景颜色非常浅)

我已经检查了 here 一个很好的教程,其中包含 Ios8 的新可能性。 事实上,我需要执行 hidesBarsOnSwipe

相反的操作

所以首先,要隐藏导航栏,我需要

self.navigationController?.isNavigationBarHidden = true

经过一番搜索,我想我需要使用 UIScrollViewDelegate

但我不知道如何实现它。

有什么提示吗?

您需要做的是实现 UIScrollViewDelegate,更准确地说是 scrollViewDidScroll(_:) 方法 (see documentation)。每次滚动滚动视图时都会调用此方法。

因此,在此方法中,您必须检查用户是否向下滚动,然后通过调用当前导航控制器的 setNavigationBarHidden(_:animated:) 方法隐藏导航栏(see documentation)