3

我在这里看到人们需要计算给定大小的 NSString 的大小,但我需要做相反的事情。

给定一个指定的矩形(或固定的 UITextView,或多行 UILabel,没有滚动)我需要知道:

  • 如果它设法显示我的 NSString 的所有字符
  • 如果不是,显示的最后一个字符是什么

这样我就可以在另一个 UITextView 中显示剩余的文本(当然,如果我可以使用单个 UITextView,我就不会有这个问题)。

起初这似乎是一件简单的事情,但实际上我没有找到方法,直觉上我认为我可以使用 UITextView 的任何一个:

textView.contentSize.height;

或 NSString 的:

sizeWithFont:constrainedToSize:lineBreakMode:

或两者的组合,但我需要精确,这些方法不能帮助我告诉最后一个设法适合 UITextView 可见区域的字符是什么。

不确定这是否真的可行,但我的客户认为编程 iOS 就像打印报纸并希望能够围绕图像格式化文本......

4

1 回答 1

1

您也许可以从一个字符长的字符串中获得一行文本的最大高度。

如果您将它与 sizeWithFont:constrainedToSize:lineBreakMode: 一起使用,那么您应该能够知道您的文本是否超过一行(如果 cgsize 高度大于一行文本的高度)。

为了找出最后一个字符(或单词),您必须在字符串的长度周围循环添加字符(或单词),并检查 cgsize 高度何时增加以添加新行,这将为您提供何时拆分为多个字符串(用于多个字段/标签/文本视图)或何时在文本中插入换行符(如果使用单个多行文本视图或标签)的字符点。

我希望你能找到一个更简单的方法...

于 2012-06-08T08:54:56.443 回答