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

Prevent specific part of the text to be truncated

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

假设文本如下所示:

FooFooFooFooFooFoo - BarBarBarBarBarBarBar

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

FooFoo...-...arBarBar

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

您可以执行此操作的一种方法是为标签设置最大字符数,然后将文本添加到该字符数并附加“...”+ 剩余字符串文本,例如:

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

基本逻辑是:

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

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