Swift:UINavigationItem显示截断的文本

时间:2017-01-16 10:44:47

标签: ios uilabel uinavigationbar autoshrink

是否有一个选项可以根据视图类型动态截断 UINavigationItem 文本?

这些是我可以编辑的唯一属性:

enter image description here

我通过设置换行符自动收缩属性设置了 UILabel (但无法找到等价物) UINavigationBar中的一个:

enter image description here

编辑:我在Swift中为String编写了一个truncate扩展,但它似乎并不是一个优雅的解决方案,因为要正常工作,它需要知道上下文(例如显示大小) ,屏幕旋转等。)。此上下文在 UILabel 类中自动处理,但不在** UINavigationItem **中处理(除非我有一些技巧可以使用)。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找可变宽度演示字符串,如下所述:https://developer.apple.com/library/content/releasenotes/Foundation/RN-Foundation/index.html#10_11VariableWidthString

我们的想法是,您可以通过宽度表和替代字符串实时调整字符串。该文档假定一个与您的用例非常相似的用例:

  

为了举例说明这个问题,想象一下iOS应用程序意味着可以在不同的屏幕尺寸和/或不同的方向上运行。现在,请说有一些文字,“欢迎来到Apple Store。”有时,该文本可能非常适合可用空间。对于其他人来说,它可能太长了,并且希望将它缩短为“欢迎。”#34;