Ric*_*evy 3 iphone cocoa-touch nsstring uitextview
我需要将UITextView的高度从上到下计算到光标.我正在修剪它包含的文本(因此它只能到达光标),然后使用NSString的sizeWithFont:constrainedToSize:lineBreakMode:方法来计算高度,如下所示:
NSRange range;
range.location = noteTextView.selectedRange.location;
range.length = noteTextView.text.length - range.location;
NSString *string = [noteTextView.text stringByReplacingCharactersInRange:range withString:@""];
CGSize size = [string sizeWithFont:noteTextView.font
constrainedToSize:noteTextView.frame.size
lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"height is: %f \n", size.height);
Run Code Online (Sandbox Code Playgroud)
每当我输入任何东西时都会这样做.
问题是,当我在键入时观察NSLog时,在我在新行上键入4个字符之前,它不会记录高度的变化.就好像该sizeWithFont方法恰好是四个字符.这里有两个屏幕截图显示我的意思:

谁能告诉我发生了什么事?
@ Vladimir的评论是正确的我认为 - NSString没有考虑UITextField的边距.
您可以尝试获取光标前的文本并创建仅包含该文本的新UITextField.
然后,如果你调用[tempTextField sizeToFit]你的新文本字段,那么它的界限应该是你要查找的大小.
| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |