滚动时隐藏大标题

我有一个正常的视图控制器embedded在导航控制器。 在这个视图控制器中,我有一个使用安全区域约束的表视图。 (我不使用表视图控制器)

导航控制器设置为喜欢大标题,模式设置为.always。 在testing版2中,这个工作非常完美,所以当我进入标题的时候很大,当我向下滚动的时候,它变得很小(和普通的一样)。 但是从testing版3开始,这已经不起作用了。

任何人都知道如何重新打开它,或者如何使它滚动表格视图,它会变得更小。 像所有新的iOS 11应用程序的行为一样?

或者这是目前版本的swift 4 / iOS 11中的一个bug,但是messenger和settings等应用程序仍然以这种方式工作。

提前致谢。

对于我来说,如果在故事板中将布尔值“Prefers Large Titles”设置为true,它会保持很大,如果通过代码打开它,它将按预期工作!

我基本上在这个网站上find了一个解决方法,如果tableView(或者具有滚动的元素)不是视图层次结构中的第一个视图,那么大标题不能自动隐藏。

例子,将无法正常工作的 例子

https://markusbodner.com/2017/10/08/fix-large-navigation-bar-title-not-hiding-on-scroll-in-ios-11/

我在视图上添加willAppear:

if #available(iOS 11.0, *) { navigationController?.navigationBar.prefersLargeTitles = true } else { // Fallback on earlier versions } 

在IB中select“ 首选大标题 ”作为导航栏,或者使用:

 navigationController?.navigationBar.prefersLargeTitles = true 
 (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.y > 0) { //20 [self.navigationController.navigationBar setPrefersLargeTitles:NO]; } else { [self.navigationController.navigationBar setPrefersLargeTitles:YES]; } }