如果内容超过 Swift 中的数字行限制,则拆分文本

Split text if its content exceeds numbers line limit in Swift

条件:

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

更新: 实际上我想要实现的是当我有一个长文本并且我有无法显示所有内容的固定文本容器大小(例如 UITextView)时,然后有一个下一步按钮来重置容器并显示左侧内容。我认为拆分字符串会有所帮助,但这似乎是一个错误的选择。我正在尝试马特的建议,希望问题能得到解决。

你的目标不好。与其将文本拆分为四个文本数组,不如利用 Text Kit 让布局管理器将文本拆分为四个文本容器(一个 NSLayoutManager,四个 NSTextContainer)。

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

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

这是由 一个 NSLayoutManager 管理的两个 UITextView 对象,因此当文本对于第一个文本视图来说变得太长时,它 自动 流动进入第二个文本视图。

如果你真的想要,我想你可以按照我刚才说的做,然后然后使用布局管理器询问它是什么做了,即从行片段向后读到字形到字符范围,并找出如何它将文本分成四个文本容器;但是当你认为问题在你开始这样做之前就已经解决了时,这似乎很愚蠢。