带有 iOS 11 大标题的 UISplitViewController 破动画

Posted

技术标签:

【中文标题】带有 iOS 11 大标题的 UISplitViewController 破动画【英文标题】:UISplitViewController with iOS 11 large titles broken animation 【发布时间】:2017-11-13 13:57:38 【问题描述】:

当使用 UISplitViewController 从 Master 导航到 Detail 时,导航栏动画无法按预期工作。它“跳跃”而不是流畅的动画。

复制步骤: 在 Xcode 9 中从模板“Master detail App”创建项目。 在viewDidLoad中的MasterViewController中加入如下代码:

navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always

DetailViewControllerviewDidLoad中添加如下代码:

navigationItem.largeTitleDisplayMode = .never

现在在 iPhone 模拟器中的 Master 和 Detail 之间导航,您可以看到 Navigation Bar 如何在 DetailViewController 上“跳跃”而不是平滑动画。

观看视频:https://youtu.be/p90I4VrM2fs

我的假设是它与使用两个 UINavigationController 和 UISplitViewController 有关。 (就是这样做的)

任何想法如何解决这个问题?谢谢。

【问题讨论】:

【参考方案1】:

我刚刚发现了问题。 prefersLargeTitleslargeTitleDisplayMode 必须在 awakeFromNib() 中设置,而不是在 viewDidLoad() 中。

【讨论】:

以上是关于带有 iOS 11 大标题的 UISplitViewController 破动画的主要内容,如果未能解决你的问题,请参考以下文章

带有 SearchBar 的 iOS 11 导航栏大小

iOS 11 大标题导航栏的图像

带有 AirPods 的 iOS11 上的 RemoteIO

iOS 13:带有 LeftView 间距问题的 UITextField - Xcode 11

Linux:何时使用分散/收集 IO(readv、writev)与带有 fread 的大缓冲区

iOS 11 - Navigationbar 大标题自定义偏移