用sizeWithFont计算UITextView文本的高度:constrainedToSize:lineBreakMode似乎没有返回正确的结果

Tho*_*zar 2 cocoa-touch uitextview uikit

我正在尝试计算由UITextView约束的文本的高度,但它似乎没有返回正确的结果.

这是我的代码:

- (void)textViewDidChange:(UITextView *)aTextView {
    CGSize textSize = [aTextView.text sizeWithFont:aTextView.font constrainedToSize:aTextView.frame.size lineBreakMode:UILineBreakModeWordWrap];
    counter.text = [NSString stringWithFormat:@"%f", textSize.height];
}
Run Code Online (Sandbox Code Playgroud)

您可以下载示例项目和一个说明问题的简短截屏视频(418 KB).

总之,问题是当我在一行的末尾键入一个长单词时,该单词将移动到下一行,但是当它发生时,字符串的高度未正确调整.

任何帮助赞赏.

最好,
托马斯.

PS:它发生在iPhone SDK 3.1.3上

Jos*_*erg 5

问题是UITextField在它实际绘制和包装文本的区域周围有一个小的边距.据我所知,没有编程方式来获得这个大小,但只是从大小减去6左右应该使它表现得恰当.