簡體   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