如何在UITextView(iOS)中查找正在截断的字符?

如何在UITextView(iOS)中查找正在截断的字符?,ios,swift,uitextview,Ios,Swift,Uitextview,我有一个文本视图,它将显示四行文本。如果文本太长,我需要在第四行末尾显示“查看更多”。如果文本很小,我不应该显示“查看更多”。我搜索了很多,对我没有任何帮助你必须使用全文工具包堆栈,自己把文本放出来。苹果在几年前就解释了如何对文本进行截断。一种方法是为标签设置最大字符数,并将文本增加到最大字符数,并附加“…查看更多”文本,如: label.text = randomPost.text.substring(0, maxChars) + "... See more" 请注意,我对如何在Swift中

我有一个文本视图,它将显示四行文本。如果文本太长,我需要在第四行末尾显示“查看更多”。如果文本很小,我不应该显示“查看更多”。我搜索了很多,对我没有任何帮助

你必须使用全文工具包堆栈,自己把文本放出来。苹果在几年前就解释了如何对文本进行截断。

一种方法是为标签设置最大字符数,并将文本增加到最大字符数,并附加“…查看更多”文本,如:

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

请注意,我对如何在Swift中使用子字符串失去了记忆,我提供的签名可能已关闭,只是试图传达想法。

要做到这一点,您必须使用NSTextContainer。 你可以用这个做一些非常奇特的事情,比如把你的文本做成一个圆圈,三角形,或者任何你能想到的UIBezierPath

以下是苹果的文档:

然后,您可以制作如下形状的UIBezierPath:

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

如果文本太大(请参见lineBreakMode),请使用启用按钮

seeMoreButton.enabled=true

如果文本合适,请使用


seeMoreButton.enabled=false

在这里!如何知道不同设备的MaxChar?将为您提供UILabel可以接受的最大字符数@文基,那是另一个问题。有不同的方法来找出你正在使用的设备。