如何在iOS 11 LargeTitles中将单行标题转换为多行标题时删除跳转效果

问题描述 投票:0回答:1

我试图在导航栏上以2行显示我的长文本。我正在使用LargeTitles。

我需要的是这个qazxsw poi //抱歉无法发布图片。

图像来自https://i.stack.imgur.com/Yb85L.png

我已经尝试了很多例子,并且在2行中显示了标题。但问题是,当我打开一个带有长标题的ViewController时,它会跳转来调整标题。以下是我试过的代码。我想避免跳跃(增加)并显示多行文本与使用单行文本时相同。正常的效果。

this post

我从func multiLineHeader() { if #available(iOS 11.0, *) { if let subviews = self.navigationController?.navigationBar.subviews { for navItem in subviews { for itemSubView in navItem.subviews { if let largeLabel = itemSubView as? UILabel { if largeLabel.canFitInSingleLine() { return } largeLabel.numberOfLines = 2 largeLabel.lineBreakMode = .byWordWrapping largeLabel.sizeToFit() self.navigationController?.navigationBar.frame.size.height += largeLabel.frame.height self.navigationController?.navigationBar.layoutIfNeeded() } } } } } } 这个叫这个。我尝试从viewDidAppear()调用和viewDidLoad()不起作用事件标题不在2行。就像从viewWillAppear()打来的那样。

如果有任何不清楚的地方,请注释,我会添加更多细节。

swift xcode uinavigationbar ios11
1个回答
0
投票

这不是解决多线跳跃效果的解决方案。

我的问题是基于我在App Store(app)中看到的多行标题,它没有跳跃效果。过了一会儿,我深入挖掘它。我发现,即使在App Store中,某些屏幕也会出现跳跃效果,在某些地方,App Store使用的是视图而不是导航栏。

例如,如果您前往App Store并搜索Thunderbox娱乐。

1)转到其中一个应用程序,然后单击公司名称以查看您将看到具有跳转效果的导航栏的所有应用程序。

2)如果您直接从搜索屏幕打开公司资料,您将看不到任何跳转效果。

© www.soinside.com 2019 - 2024. All rights reserved.