如何删除 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
。
请注意,由于您没有使用默认标题,因此您将失去一些功能,例如在此屏幕中滚动列表时将标题折叠成较小的标题。
对我来说,唯一可行的解决方案是:
DispatchQueue.main.async { [weak self] in
self?.navigationController?.navigationBar.sizeToFit()
}
在
viewWillAppear()
如何删除设置 navigationController?.navigationBar.prefersLargeTitles = true
时创建的附加 space?
我知道它是 navigationBar 本身,但是是否可以使 largeTitle 比它的初始位置稍低一些(在状态栏的正下方)?
编辑:
这个 answer 似乎是解决问题的更好方法。
初始答案:
不是真的,如果不进行一些最终可能会导致问题的过度黑客攻击,就不可能实现。
您可以尝试在导航栏上设置 titleView
并将宽度约束设置为等于导航栏宽度。尝试使用简单的 UILabel
,并设置 prefersLargeTitles = false
并且不要为此屏幕使用 navigationItem.title
。
请注意,由于您没有使用默认标题,因此您将失去一些功能,例如在此屏幕中滚动列表时将标题折叠成较小的标题。
对我来说,唯一可行的解决方案是:
DispatchQueue.main.async { [weak self] in
self?.navigationController?.navigationBar.sizeToFit()
}
在
viewWillAppear()