gpt4 book ai didi

ios - “滑动时隐藏导航栏”永远不会返回

转载 作者:行者123 更新时间:2023-11-28 08:01:34 25 4
gpt4 key购买 nike

我在我的 View Controller 中创建了视差类型的滚动效果(或弹性标题)。

我有一个 uiscrollview,它固定在窗口边距上。在这里面我有一个 View ,它锚定了 ScrollView 的 0 个常量约束,并设置为相等的宽度。该 View 内是内容。内容的顶部是一张图像,它使用两个约束锚定到窗口的顶部(安全区域指南)。首先是constant=0 priority=750。第二个是常量<=0 priority=1000。

这有效.. 当我向上滚动时,所有内容都向上滚动。当我从顶部向下滚动时,图像会拉伸(stretch)然后弹回。

问题:我也在尝试实现导航栏以在用户滚动时隐藏。我已将此代码添加到 View Controller :

override func viewDidAppear(_ animated: Bool) {
navigationController?.hidesBarsOnSwipe = true
}

当我向上滚动时这工作正常(导航栏淡出并向上动画直到隐藏),但是当我向下滚动时导航栏不会返回。我假设它以某种方式被固定在窗口顶部的图像隐藏了。但是如何调整/重新附加导航栏?

xcode 9 - swift 4

最佳答案

尝试使用以下代码可能会有帮助。

确保你应该使用 UIScrollViewdelegate 并实现 scrollViewDidScroll 委托(delegate)方法。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
let scrollOffset: Float = Float(scrollView.contentOffset.y)
if scrollOffset < 0 {
navigationController?.hidesBarsOnSwipe = false
navigationController?.setNavigationBarHidden(false, animated: true)
}
else {
navigationController?.hidesBarsOnSwipe = true
}
}

关于ios - “滑动时隐藏导航栏”永远不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46522655/

25 4 0