我在这里看到人们需要计算给定大小的NSString的大小,但我需要做相反的事情。
给定一个指定的rect(或固定的UITextView,或多行UILabel,没有滚动),我需要知道:
这样我就可以在另一个UITextView中显示剩余的文本(当然,如果我可以使用单个UITextView,我就不会遇到这个问题)。
起初这似乎很简单,但实际上我找不到方法,直觉上我认为我可以使用UITextView:
textView.contentSize.height;
或NSString:
sizeWithFont:constrainedToSize:lineBreakMode:
或两者的组合,但我需要精确,这些方法无法帮助我说出哪个是最后一个符合UITextView可见区域的字符。
不确定这是否真的可行,但我的客户认为编程iOS就像打印报纸并期望能够在图像周围设置文本格式......
答案 0 :(得分:1)
您可以从一个字符长的字符串中获取一行文本的最大高度。
如果你使用sizeWithFont:constrainedToSize:lineBreakMode:那么你应该能够知道你的文本是否运行到多行(如果cgsize高度大于一行文本的高度)。
为了找出最后一个字符(或单词),你必须循环字符串的长度,在你去的时候添加字符(或单词)并检查cgsize高度何时增加以添加一个新行,将为您提供何时分割成多个字符串(对于多个字段/标签/文本视图)或何时在文本中插入换行符(如果使用单个多行文本视图或标签)的字符点。
我希望你找到一种更简单的方法......