iOS 14 大标题导航栏缩小后不回来

问题描述

我的大标题在滚动时确实会正常缩小,就像它应该的那样。但是,即使我滚动到顶部,它也不会再次变大。当我第一次构建项目并打开应用程序时,大标题搜索栏正常显示,但一旦缩小。在我完成应用程序之前它不会回来。在我的设备上也会发生同样的情况。

我将 tableViewViewController 一起使用,searchBarnavigation title 中。我在导航栏下也有 tableview header

我的大标题的工作方式:

preview 1

它应该工作的方式:

preview 1

我在导航栏中添加一个 searchController,但我不认为 searchController 是问题所在,因为即使我从我的项目中删除搜索栏,也会出现同样的问题。此外,我在 GIF 中的这两个不同项目中使用了相同的代码制作大标题,但一个有效,一个无效。为什么?

我把它放在 viewDidLoad() 中。

navigationController?.navigationBar.prefersLargeTitles = true

我也试过:

navigationItem.largeTitledisplayMode = .always

但是,它没有用。

我也试过:

navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitledisplayMode = .always

viewWillAppear() 中的那两个,但效果不佳。

-编辑-

tableView 也是视图层次结构中的第一个。如果层次结构有问题,请告诉我。

我的文档大纲的图像:

preview 3

解决方法

可能的问题是您的 tableview 内容高度几乎与屏幕高度相同,因此它无法滚动并为大标题设置动画。为此,您可以在 tableview 上尝试始终弹跳功能。在 viewDidLoad 你可以调用

tableView.alwaysBounceVertical = true

如果 tableview 是 viewcontroller 子视图层次结构的第一个视图,这可能会解决您的问题。

,

我查看了 tableview.alwaysBounceVertical 是什么以及 bouncetableview 中是什么,我发现 bounceOnScroll 属性被设置为 false,这是出现这个问题的原因(我猜)。当我滚动到顶部时,large title 再次变大,因为我在故事板中选中了 bounce on scroll

此外,我的 large title 工作正常,无需将 bounce vertically 属性设置为 true。我通过将故事板和代码设置为 false 来尝试使用故事板。所以问题是只有 bounceOnScroll,我猜。

在代码中,可以放

tableview.bounces = true

viewController 上。

,

如果除了您设置的标志和 tableView 位置作为视图层次结构中的第一个之外,如果您希望滚动导航栏正常工作,您需要确保 tableView 顶部和底部约束绑定到 superview 。默认情况下,它与不正确的安全区域对齐。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...