如何计算UITextView的边距大小?

时间:2011-05-13 14:36:09

标签: iphone cocoa-touch nsstring uitextview

我试图通过修剪光标后的所有文本,然后使用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的大小中减去它,以获得文本区域的实际大小。有谁知道怎么做?

2 个答案:

答案 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];