我有一个嵌入导航控制器的普通视图控制器。在这个视图控制器中,我有一个使用安全区域约束的表视图。 (我不使用表视图控制器)
导航控制器设置为首选大型标题,模式设置为.always。在测试版2中,这非常有效,所以当我进入标题时,标题很大,当我向下滚动它变得很小时(就像正常情况一样)。但是从beta 3开始,这已不再适用了。
任何人都知道如何将其重新打开,或者如何在我滚动表格视图时将其设置为更小。喜欢所有新iOS 11应用程序的行为?
或者这是当前版本的swift 4 / iOS 11中的一个错误,但是信使和设置等应用程序仍然以这种方式工作。
提前致谢。
答案 0 :(得分:20)
对我来说,如果你设置布尔值"喜欢大标题"在故事板中为true它会保持很大,如果你通过代码打开它,它按预期工作!
答案 1 :(得分:7)
我在这个网站上找到了解决方法 基本上,如果tableView(或具有滚动的元素)不是视图层次结构中的第一个视图,则大标题无法自动隐藏。
Example that will NOT work Example that will work
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
}
答案 2 :(得分:1)
(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y > 0) { //20
[self.navigationController.navigationBar setPrefersLargeTitles:NO];
} else {
[self.navigationController.navigationBar setPrefersLargeTitles:YES];
}
}
答案 3 :(得分:0)
检查" 喜欢大型标题"对于IB中的导航栏,或使用:
navigationController?.navigationBar.prefersLargeTitles = true
答案 4 :(得分:0)
我正在使用程序化布局,并且遇到了类似的大标题问题。我在这里找到了解决方案:Googling。在last system error: 11
中,我不得不重新打开viewDidLoad()
。这是正确的组合,可以使大标题与滚动一起工作:
largeTitleDisplayMode