iOS 14 large-title 导航栏缩小后不返回
iOS 14 large-title navigation bar doesn’t come back after shrinking
我的大标题在滚动时会正常缩小,就像它应该的那样。但是,即使我滚动到顶部,它也不会再次变大。当我第一次构建项目并打开应用程序时,大标题和搜索栏正常显示,但一旦缩小。在我完成应用程序之前它不会回来。它在我的设备上也发生了同样的情况。
我在 tableView
中使用 ViewController
,在 navigation title
中使用 searchBar
。我的导航栏下面也有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
是什么,tableview
里面的bounce
是什么,我发现bounceOnScroll
属性设置为false
,这就是这个问题发生的原因(我猜)。当我滚动到顶部时,large title
再次变大,我在情节提要中检查了 bounce on scroll
。
此外,my large title
在不将 bounce vertically
属性 设置为 true 的情况下也能正常工作。我尝试将故事板和代码设置为 false。所以问题出在 bounceOnScroll
,我猜。
在代码中,放
就可以了
tableview.bounces = true
在 viewController
.
如果除了您设置的标志和 tableView 在视图层次结构中的第一个位置之外,您希望滚动导航栏正常工作,您需要确保 tableView 顶部和底部约束绑定到 superview 。默认情况下,它与不正确的安全区域对齐。
我的大标题在滚动时会正常缩小,就像它应该的那样。但是,即使我滚动到顶部,它也不会再次变大。当我第一次构建项目并打开应用程序时,大标题和搜索栏正常显示,但一旦缩小。在我完成应用程序之前它不会回来。它在我的设备上也发生了同样的情况。
我在 tableView
中使用 ViewController
,在 navigation title
中使用 searchBar
。我的导航栏下面也有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
是什么,tableview
里面的bounce
是什么,我发现bounceOnScroll
属性设置为false
,这就是这个问题发生的原因(我猜)。当我滚动到顶部时,large title
再次变大,我在情节提要中检查了 bounce on scroll
。
此外,my large title
在不将 bounce vertically
属性 设置为 true 的情况下也能正常工作。我尝试将故事板和代码设置为 false。所以问题出在 bounceOnScroll
,我猜。
在代码中,放
就可以了tableview.bounces = true
在 viewController
.
如果除了您设置的标志和 tableView 在视图层次结构中的第一个位置之外,您希望滚动导航栏正常工作,您需要确保 tableView 顶部和底部约束绑定到 superview 。默认情况下,它与不正确的安全区域对齐。