我试图通过修剪光标后的所有文本,然后使用NSString的sizeWithFont
方法计算出textView的大小,直到光标,如下所示:
NSString *string = [myTextView.text substringToIndex:myTextView.selectedRange.location];
CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.frame.size lineBreakMode:UILineBreakModeWordWrap];
不幸的是,这永远不会返回正确的大小,可能是因为文本有边距,所以它的实际宽度小于UITextView的宽度(感谢this question的回答者可以解决这个问题。)
所以我需要计算边距的大小,然后从UITextView的大小中减去它,以获得文本区域的实际大小。有谁知道怎么做?
答案 0 :(得分:2)
不幸的是,看起来答案是UITextView中没有边距 - 您只需通过在其后面放置一个视图来模拟一个,并使UITextView更窄。如果您需要背景以滚动文字,则可以收听scrollViewDidScroll:
。
答案 1 :(得分:1)
我建议
CGSize tSize = myTextView.frame.size;
tSize.width -= 2 * myTextView.contentInset.left;
tSize.height -= 2 * myTextView.contentInset.top;
CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:tSize lineBreakMode:UILineBreakModeWordWrap];