问题描述
我的大标题在滚动时确实会正常缩小,就像它应该的那样。但是,即使我滚动到顶部,它也不会再次变大。当我第一次构建项目并打开应用程序时,大标题和搜索栏正常显示,但一旦缩小。在我完成应用程序之前它不会回来。在我的设备上也会发生同样的情况。
我将 tableView
与 ViewController
一起使用,searchBar
在 navigation title
中。我在导航栏下也有 tableview header
。
我的大标题的工作方式:
它应该工作的方式:
我在导航栏中添加了一个 searchController
,但我不认为 searchController
是问题所在,因为即使我从我的项目中删除了搜索栏,也会出现同样的问题。此外,我在 GIF 中的这两个不同项目中使用了相同的代码制作大标题,但一个有效,一个无效。为什么?
我把它放在 viewDidLoad()
中。
navigationController?.navigationBar.prefersLargeTitles = true
我也试过:
navigationItem.largeTitledisplayMode = .always
但是,它没有用。
我也试过:
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitledisplayMode = .always
viewWillAppear()
中的那两个,但效果不佳。
-编辑-
tableView
也是视图层次结构中的第一个。如果层次结构有问题,请告诉我。
我的文档大纲的图像:
解决方法
可能的问题是您的 tableview 内容高度几乎与屏幕高度相同,因此它无法滚动并为大标题设置动画。为此,您可以在 tableview 上尝试始终弹跳功能。在 viewDidLoad 你可以调用
tableView.alwaysBounceVertical = true
如果 tableview 是 viewcontroller 子视图层次结构的第一个视图,这可能会解决您的问题。
,我查看了 tableview.alwaysBounceVertical
是什么以及 bounce
在 tableview
中是什么,我发现 bounceOnScroll
属性被设置为 false
,这是出现这个问题的原因(我猜)。当我滚动到顶部时,large title
再次变大,因为我在故事板中选中了 bounce on scroll
。
此外,我的 large title
工作正常,无需将 bounce vertically
属性设置为 true。我通过将故事板和代码设置为 false 来尝试使用故事板。所以问题是只有 bounceOnScroll
,我猜。
在代码中,可以放
tableview.bounces = true
在 viewController
上。
如果除了您设置的标志和 tableView 位置作为视图层次结构中的第一个之外,如果您希望滚动导航栏正常工作,您需要确保 tableView 顶部和底部约束绑定到 superview 。默认情况下,它与不正确的安全区域对齐。