我试图在导航栏中以2行显示我的长文本。我正在使用LargeTitles。
我需要的是这个https://i.stack.imgur.com/Yb85L.png // //很抱歉无法发布图片。
图片取自this post
我尝试了很多示例,并成功地将标题显示为2行。但是问题是当我打开带有长标题的ViewController时,它会跳转以调整标题。以下是我尝试过的代码。我想避免跳跃(增加),并且如果使用单行文本,则将多行文本显示为与之相同。正常效果。
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()
调用,并且viewWillAppear()
不起作用事件标题不在2行中。就像从viewDidAppear()
调用时一样。
如果有任何不清楚的地方,请发表评论,我会添加更多详细信息。
答案 0 :(得分:0)
这不是解决多行跳转效果的解决方案。
我的问题是基于我在App Store(app)中看到的多行标题,该标题没有跳转效果。过了一会儿,当我深入研究它。我发现,即使在App Store中,某些屏幕上和某些地方App Store也会使用视图而不是导航栏来产生跳跃效果。
例如,如果您去App Store并搜索Thunderbox娱乐。
1)转到其应用程序之一,然后单击公司名称以查看所有应用程序,您将看到一个具有跳转效果的导航栏。
2)如果直接从搜索屏幕中打开公司资料,则不会看到任何跳转效果。