如何在UITextView(iOS)中找到哪个字符截断?

时间:2016-07-19 18:05:54

标签: ios swift uitextview

我有一个textview,它将显示四行文字。如果文字太长,我需要显示"查看更多"在第四行的末尾。如果文字很小,我不应该显示"查看更多"。我搜索了很多,没有任何帮助我enter image description here

3 个答案:

答案 0 :(得分:1)

为此,您必须使用NSTextContainer。 你可以用这个做一些非常奇特的东西,比如用圆形,三角形或任何你能想到的UIBezierPath形成文本......

这是苹果的文档: https://developer.apple.com/reference/uikit/nstextcontainer

然后您可以制作如下形状的UIBezierPath:enter image description here

在右下角,您可以看到“查看更多”按钮。

如果文字太大(请参阅lineBreakMode),请使用

启用该按钮

seeMoreButton.enabled = true

如果文字适合,请使用

seeMoreButton.enabled = false

答案 1 :(得分:0)

您必须使用完整的Text Kit堆栈并自行打印文本。几年前,Apple解释了如何在a WWDC video中进行文本截断。

答案 2 :(得分:0)

你可以做到这一点的一种方法是拥有标签的最大字符数,并将文本带到该计数并附加" ...查看更多"文字如:

label.text = randomPost.text.substring(0, maxChars) + "... See more"

请注意,我已经关闭了如何在Swift中进行子串的记忆,我提供的签名可能已关闭,只是试图传达这个想法。