防止文本的特定部分被截断
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)
基本逻辑是:
- 查找可以放置在标签框中的最大字符数。
- 现在我们有了要放置在标签中的数字字符。我们将在这里处理我们自己的截断逻辑。
- 计算上半场和下半场可以显示多少字符
- 将这两个字符串与“...”连接起来
没有默认模式。我遇到了同样的问题,并将它也分成了 3 个 UILabel。它比计算字符容易得多,实际上你不需要计算任何东西,只需要设置约束。
我有一个很长的单行文本被截断了 (byTruncatingMiddle
)。但是,该字符串中间有一个特定字符,我不想将其切断。
假设文本如下所示:
FooFooFooFooFooFoo - BarBarBarBarBarBarBar
现在我想在不删除破折号的情况下截断文本。所以结果应该是这样的
FooFoo...-...arBarBar
使用 Swift
的默认工具是否可行,或者是我将 UILabel
分成 3 部分并分别截断尾部和头部的唯一方法?
您可以执行此操作的一种方法是为标签设置最大字符数,然后将文本添加到该字符数并附加“...”+ 剩余字符串文本,例如:
label.text = lblMessage.text.substring(0, maxChars) + "..." + lblMessage.text.substring(minChars, text.lenght)
基本逻辑是:
- 查找可以放置在标签框中的最大字符数。
- 现在我们有了要放置在标签中的数字字符。我们将在这里处理我们自己的截断逻辑。
- 计算上半场和下半场可以显示多少字符
- 将这两个字符串与“...”连接起来
没有默认模式。我遇到了同样的问题,并将它也分成了 3 个 UILabel。它比计算字符容易得多,实际上你不需要计算任何东西,只需要设置约束。