繁体   English   中英

如果内容超出Swift中的数字行限制,请分割文本

[英]Split text if its content exceeds numbers line limit in Swift

条件:

  • 最多可以包含X行的UITextView:禁用滚动。 (例如,最大行数= 8)
  • 大量的文字内容。 (例如; 25行)
  • 语言是英语。 (自动换行是强制性的)

如果内容超过数字行数限制,如何分割文本? 我想将文本拆分为数组。 根据条件,文本应分为4个元素。

更新:实际上,我想要达到的效果是,当我有一个长文本并且具有固定文本容器大小(例如UITextView)时,它无法显示所有内容,然后有一个下一步按钮可以重置容器并显示剩余内容。 我以为分割字符串会有所帮助,但这似乎是错误的选择。 我正在尝试Matt的建议,希望该问题能够得到解决。

您的目标不是一个好目标。 与其将文本分割成四个文本数组,不如利用文本工具包,让布局管理器将文本分割成四个文本容器(一个NSLayoutManager,四个NSTextContainers)会更好。

甚至可以将其与当前用于显示目的的文本视图结合使用:四个文本容器可以属于四个文本视图,现在您具有四个不可编辑的不可滚动文本视图,它们可以在它们之间自动分配文本,您可以切换在这些文本视图中。

这是一个只有两个文本视图的示例:

在此处输入图片说明

那是由一个 NSLayoutManager控制的两个UITextView对象,因此当文本对于第一个文本视图来说太长时,它会自动流入第二个文本视图。

如果您确实想要,我想您可以按照我说的做, 然后使用布局管理器询问它做了什么,即从行片段向后读到字形再到字符范围,然后找出如何拆分文本放入四个文本容器中; 但是当您认为问题甚至在开始解决之前就已经解决了,这似乎很愚蠢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM