我需要对长的多行文本字符串进行智能多行剪切。
最初我有以下内容:
在上面的屏幕上,我指出了我实际用于显示文本的狭窄区域。 最后我想得到以下内容:
我寻找的主要想法是如何将多行文本作为一个整体截断(不是按字符串分隔,截断每个文本然后再连接回去)。
更详细地说,我有 3 个字符串,用 \n
分隔并连接成一个长字符串。
我想在以下条件下将这个长字符串作为属性字符串放在确定的 UILabel 中:
- 第一个字符串必须有一行
- 第二个和第三个字符串必须最多有2行
所以我不仅想通过标签框架截断整个长字符串的尾部,而且还想截断由 \n
独立分隔的每个字符串的尾部。
我知道我可以动态地做到这一点:按单词拆分每个子字符串并连接单词,直到需要的行数超过最大允许行数。
但我相信有一些优雅的方法可以使用格式化或 CoreText 来做到这一点。
最佳答案
你可以使用一些优雅的正则表达式:)
s/^(.{0,80}).*$/\1/g
例如,这个将从每个子串中只留下 80 个第一个符号。
s/^(.{1,80})(?<!\s)(?!\w)/\1/g
而这个将留下不超过 80 个,但只在空白处中断
关于ios - 将长字符串插入到 UILabel 中,通过切割由\n 分隔的每个子字符串的尾部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24970901/