如何删除 Swift 中由 prefersLargeTitles = true 创建的 space

How to remove space that is created by prefersLargeTitles = true in Swift

如何删除设置 navigationController?.navigationBar.prefersLargeTitles = true 时创建的附加 space?

我知道它是 navigationBar 本身,但是是否可以使 largeTitle 比它的初始位置稍低一些(在状态栏的正下方)?

编辑:

这个 answer 似乎是解决问题的更好方法。

初始答案:

不是真的,如果不进行一些最终可能会导致问题的过度黑客攻击,就不可能实现。

您可以尝试在导航栏上设置 titleView 并将宽度约束设置为等于导航栏宽度。尝试使用简单的 UILabel,并设置 prefersLargeTitles = false 并且不要为此屏幕使用 navigationItem.title

Check out this answer

请注意,由于您没有使用默认标题,因此您将失去一些功能,例如在此屏幕中滚动列表时将标题折叠成较小的标题。

对我来说,唯一可行的解​​决方案是:

DispatchQueue.main.async { [weak self] in
    self?.navigationController?.navigationBar.sizeToFit()
}

viewWillAppear()