2017-07-17 69 views
11

我有一个嵌入导航控制器的普通视图控制器。在这个视图控制器中,我有一个使用安全区域约束的表视图。 (我不使用桌面视图控制器)滚动时隐藏大标题

导航控制器设置为喜欢大标题,模式设置为.always。在测试版2中,这个功能非常完美,所以当我进入标题时很大,当我向下滚动时它变得很小(与正常情况一样)。但是从测试版3开始,这已经不再适用了。

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

或者这是swift 4/iOS 11的当前版本中的一个错误,但像Messenger和settings这样的应用程序仍然以这种方式工作。

在此先感谢。

回答

20

对我来说,那是,如果你设置的布尔“倾向于大标题”在故事板为真它会保持很大,如果你打开它的代码,它按预期工作!

+4

这绝对是iOS 11中的一个错误,但您的提示对我来说是一种解决方法!谢谢! – funkenstrahlen

+3

仍然是通用汽车构建的案例! – Ely

+2

我填写了一个错误报告,其中一个被设置为重复,所以他们应该知道它。 –

0

检查“倾向于大标题”在IB您的导航栏,或使用:

navigationController?.navigationBar.prefersLargeTitles = true 
+2

是让我做到这一点,大标题显示,但是当我向下滚动从来没有变小。它总是很大,但当我向上滚动时,我处于顶部,标题变得更大。所以这些约束条件也能正常工作,这是因为β3版本在我向下滚动时不会变小。 –

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

我找到了一个解决办法在这个网站 基本上,如果的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 
    } 
+0

请在此处发布解决方法代码。 –

+0

我在故事板上做了这件事我附上了两张图片,显示应该如何编辑层次结构......我添加了用于设置大标题的代码 - –