Ios 如何删除在Swift中由prefersLargeTitles=true创建的空间
如何删除设置Ios 如何删除在Swift中由prefersLargeTitles=true创建的空间,ios,swift,uinavigationcontroller,autolayout,uinavigationbar,Ios,Swift,Uinavigationcontroller,Autolayout,Uinavigationbar,如何删除设置导航控制器?.navigationBar.prefersLargeTitles=true时创建的附加空间 我知道这是导航栏本身,但是有没有可能使这个大标题比它的初始位置稍微低一点的位置更高(在状态栏的右下方) 编辑: 这似乎是解决这个问题的更好办法 初始答案: 不是真的,如果没有一些过度的黑客攻击,这是不可能实现的,而这些黑客攻击最终可能会导致问题 您可以尝试在导航栏上设置titleView,并将宽度约束设置为等于导航栏宽度。尝试使用一个简单的UILabel,并将首选目标设置为fal
导航控制器?.navigationBar.prefersLargeTitles=true
时创建的附加空间
我知道这是导航栏本身,但是有没有可能使这个大标题比它的初始位置稍微低一点的位置更高(在状态栏的右下方)
编辑:
这似乎是解决这个问题的更好办法
初始答案:
不是真的,如果没有一些过度的黑客攻击,这是不可能实现的,而这些黑客攻击最终可能会导致问题
您可以尝试在导航栏上设置titleView
,并将宽度约束设置为等于导航栏宽度。尝试使用一个简单的UILabel
,并将首选目标设置为false
,不要在此屏幕上使用navigationItem.title
请注意,由于您不使用默认标题,因此在该屏幕中滚动列表时会丢失一些功能,例如将标题折叠为较小的标题。对于我来说,唯一有效的解决方案是:
DispatchQueue.main.async { [weak self] in
self?.navigationController?.navigationBar.sizeToFit()
}
在
创建UILabel并将其设置为
self.navigationItem.LeftBarButtonim
的解决方法非常有效,在我的例子中没有设置任何约束。注意:我不需要特定控制器中的后退按钮,也不需要折叠功能。您可以将此链接添加到您的答案中,或者仅使用self.navigationItem.leftBarButtoniem
,将其标记为答案
viewWillAppear()