Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何删除在Swift中由prefersLargeTitles=true创建的空间_Ios_Swift_Uinavigationcontroller_Autolayout_Uinavigationbar - Fatal编程技术网

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()