当 navigationItem.title 太长时后退按钮标题消失
Posted
技术标签:
【中文标题】当 navigationItem.title 太长时后退按钮标题消失【英文标题】:BackButton title disappering when navigationItem.title too long 【发布时间】:2014-03-21 10:48:36 【问题描述】:我在 NavigationItem 中的所有按钮都是在代码中为 viewHierachy 中的特定视图设置的。 使用 titleLabel 设置标题以设置 minimumScaleFactor 和 contentCompression:
titleLabel.text = self.bookTitel;
titleLabel.minimumScaleFactor = 0.5;
[titleLabel setContentCompressionResistancePriority:UILayoutPriorityDefaultLow
forAxis:UILayoutConstraintAxisHorizontal];
[titleLabel setContentCompressionResistancePriority:UILayoutPriorityDefaultLow
forAxis:UILayoutConstraintAxisVertical];
self.navigationItem.titleView = titleLabel;
现在当 bookTitle 太长时,它会被缩短为 ...,但 backButtons 的标题也会消失。
UIBarButtonItem
没有响应 setContentCompression:
,所以我无法将其设置为 requiredPriority。
如何防止后退按钮不显示?
【问题讨论】:
【参考方案1】:以下是UINavigationItem class reference 概述部分的摘录:
导航项必须提供标题,以便在查看时显示 控制器位于导航堆栈的最顶层。此外,该项目 可能包含额外的按钮显示在右侧 导航栏。您可以指定按钮和视图显示在 工具栏的左侧使用 leftBarButtonItems 属性,但 导航控制器仅在有空间时才显示这些按钮 可用。
如果没有足够的空间,导航控制器将不会在左侧显示任何按钮,即您的后退按钮所在的位置。这取决于导航控制器...
为了防止后退按钮不显示:
你能进一步限制titleLabel
的大小吗? (视图的大小)。
【讨论】:
嗯,实际上 minimumScaleFactor 和 contentCompressions 似乎被忽略了。也设置视图框架。当标题太长时,我通过削减标题来解决问题。以上是关于当 navigationItem.title 太长时后退按钮标题消失的主要内容,如果未能解决你的问题,请参考以下文章
从另一个类 Swift 访问 navigationItem.title
如何在 Swift 4 中将 navigationItem.title 更改为白色?