向上滚动时隐藏大标题
Hide large title when scrolling up
我有一个嵌入在导航控制器中的普通视图控制器。在这个视图控制器中,我有一个使用安全区域约束的 table 视图。 (我不使用 table 视图控制器)
导航控制器设置为首选大标题,模式设置为 .always。在 beta 2 中,这非常有效,所以当我进入标题时它很大,当我向下滚动时它变小了(就像正常的一样)。但是从 beta 3 开始,这不再有效了。
任何人都知道如何重新打开它,或者如何使它在我滚动 table 视图时变得更小。喜欢所有新 iOS 11 个应用程序的行为吗?
或者这是 swift 4/iOS 11 当前版本中的错误,但 Messenger 和设置等应用程序仍然以这种方式工作。
提前致谢。
在 IB 中为您的导航栏选中“Prefers Large Titles”,或使用:
navigationController?.navigationBar.prefersLargeTitles = true
对我来说,如果你将情节提要中的布尔值 "Prefers Large Titles" 设置为 true,它会保持很大,如果你通过代码打开它,它会按预期工作!
(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y > 0) { //20
[self.navigationController.navigationBar setPrefersLargeTitles:NO];
} else {
[self.navigationController.navigationBar setPrefersLargeTitles:YES];
}
}
我在此站点上找到了解决方法
基本上,如果 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
}
我正在使用程序化布局,运行 遇到类似的大标题问题。我在这里找到了解决方案:https://whosebug.com/a/46692583/131378。在 viewDidLoad()
中,我不得不关闭并重新打开 largeTitleDisplayMode
。这是使大标题与滚动一起工作的正确组合:
self.navigationItem.largeTitleDisplayMode = .never
self.navigationItem.largeTitleDisplayMode = .always
我有一个嵌入在导航控制器中的普通视图控制器。在这个视图控制器中,我有一个使用安全区域约束的 table 视图。 (我不使用 table 视图控制器)
导航控制器设置为首选大标题,模式设置为 .always。在 beta 2 中,这非常有效,所以当我进入标题时它很大,当我向下滚动时它变小了(就像正常的一样)。但是从 beta 3 开始,这不再有效了。
任何人都知道如何重新打开它,或者如何使它在我滚动 table 视图时变得更小。喜欢所有新 iOS 11 个应用程序的行为吗?
或者这是 swift 4/iOS 11 当前版本中的错误,但 Messenger 和设置等应用程序仍然以这种方式工作。
提前致谢。
在 IB 中为您的导航栏选中“Prefers Large Titles”,或使用:
navigationController?.navigationBar.prefersLargeTitles = true
对我来说,如果你将情节提要中的布尔值 "Prefers Large Titles" 设置为 true,它会保持很大,如果你通过代码打开它,它会按预期工作!
(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y > 0) { //20
[self.navigationController.navigationBar setPrefersLargeTitles:NO];
} else {
[self.navigationController.navigationBar setPrefersLargeTitles:YES];
}
}
我在此站点上找到了解决方法 基本上,如果 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
}
我正在使用程序化布局,运行 遇到类似的大标题问题。我在这里找到了解决方案:https://whosebug.com/a/46692583/131378。在 viewDidLoad()
中,我不得不关闭并重新打开 largeTitleDisplayMode
。这是使大标题与滚动一起工作的正确组合:
self.navigationItem.largeTitleDisplayMode = .never
self.navigationItem.largeTitleDisplayMode = .always