防止文本的特定部分被截断

时间:2017-04-24 07:21:57

标签: ios swift uilabel truncate

我有一个被截断的长单行文本(byTruncatingMiddle)。但是,该字符串在中间有一个特定的字符,我不想被切断。

让我们说文本如下:

FooFooFooFooFooFoo - BarBarBarBarBarBarBar

现在我想在不删除短划线的情况下截断文本。所以结果应该是这样的

FooFoo...-...arBarBar

使用Swift的默认工具是可能的,还是我唯一的方法将UILabel分成3个部分并分别截断尾部和头部?

2 个答案:

答案 0 :(得分:0)

您可以这样做的一种方法是使用标签的最大字符数,并将文本带到该计数,并附加“...”+剩余字符串文本,如:

label.text = lblMessage.text.substring(0, maxChars) + "..." + lblMessage.text.substring(minChars, text.lenght)

基本上逻辑是:

  1. 查找可放置在标签框中的最大字符数。
  2. 现在我们将在标签中添加数字字符。我们将在这里处理我们自己的截断逻辑。
  3. 计算上半年和下半年可以显示的字符数
  4. 将这两个字符串与“......”结合起来

答案 1 :(得分:0)

没有默认模式。我有同样的问题,并将其分为3个UILabels。它比计算字符容易得多,实际上你不必计算任何东西,只需设置约束。