iOS 11 大标题导航栏不折叠

标签 ios objective-c uikit ios11

What's new in Cocoa Touch WWDC video said 中的苹果人新的大标题导航栏将神奇地挂接到底层 View Controller 的顶级 ScrollView ,并在上下滚动时自动折叠/展开。 (并且“神奇地”,他可能意味着他们未能将此功能修补到已经令人尴尬的 UINavigationController-UINavigationBar-UINavigationitem API一种可用的方式,所以他们不得不求助于在幕后使用一些启发式选择的 ScrollView )

即使我已经准备好,如果我稍微偏离基本的 UINavigationController + UITableView/UICollectionView,这种“自动”折叠/展开将不起作用 设置,似乎即使在这个最简单的情况下,它也不能按预期工作。

这是我所拥有的:

一个UITabBarController,它包含一个UINavigationController,它包含一个UIViewController,它有一个UITableView作为它的查看。点击表格中的第一个单元格将在导航堆栈上推送第二个 View Controller :

storyboard

没有代码,只有 Storyboard。

我已经为导航栏选中了“首选大标题”,以激活大标题。现在,如果我运行应用程序并在表格 View 上向上/向下滚动,导航栏保持不变——大尺寸;它不会崩溃:

stuck with large title

但是,我发现如果我将第二个 View Controller 的导航项设置为使用小导航栏(通过将 "Large Title" 设置为值 "Never"),然后如果我打开该页面并返回,交互式折叠神奇地开始在第一页上工作:

interactive collapse works after back navigation

我在这里遗漏了什么,还是此功能无法正常工作?这是我正在使用的示例项目:https://github.com/tzahola/iOS-11-Large-Title-Navigation-Bar

顺便说一句,我使用的是正式发布的 iOS 11,而不是测试版。

2017-09-23 更新:我已经向 Apple 发送了错误报告,并在 openradar.me 上打开了一张票:http://www.openradar.me/radar?id=5017601935671296

最佳答案

如果除了 tableView 之外还有其他 View ,还要确保 tableView 位于该 View 的顶部,就在安全区域下方:

enter image description here

关于iOS 11 大标题导航栏不折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46373055/

相关文章:

objective-c - 当使用基于 View 的 NSOutlineView (源列表)使用绑定(bind)时,是否可以根据某些条件不显示数据源中的行?

iPhone:如何使用 NSUserDefaults 存储 UIImage?

iphone - UINavigationBar 高度和横向模式

ios - 你能检测到 UIViewController 何时被关闭或弹出吗?

ios - 让应用程序在越狱设备上自行重启

ios - UIButton 只能部分点击

iphone - 设置隐藏 : has unwanted delay

ios - 全局向导航栏应用渐变并处理方向变化

ios - 类型 'Int32' 不符合协议(protocol) 'AnyObject' Swift?

Objective-c - initWithCoder 和内存管理?