【发布时间】:2011-11-16 02:49:37
【问题描述】:
我有一个UITextView,想根据内容的变化设置它的高度。
如何获取内容的高度。
请指导我。
提前致谢。
【问题讨论】:
-
你有什么样的内容?
-
我有英语和日语两种语言的字符串
标签: iphone objective-c text height uitextview
我有一个UITextView,想根据内容的变化设置它的高度。
如何获取内容的高度。
请指导我。
提前致谢。
【问题讨论】:
标签: iphone objective-c text height uitextview
如果你想为某些文本计算UITextView 的高度,那么你可以使用这样的方法:
CGSize textViewSize = [text sizeWithFont:[UIFont fontWithName:@"Marker Felt" size:20]
constrainedToSize:CGSizeMake(WIDHT_OF_VIEW, FLT_MAX)
lineBreakMode:UILineBreakModeTailTruncation];
在fontWithName 中定义您在UITextView 中使用的字体,在size 参数中-UITextView 中的文本大小。替换您的UITextView 的WIDHT_OF_VIEW width 宽度。
textViewSize.height 将包含高度,UITextField 无需滚动即可显示文本
【讨论】:
[text sizeWithFont:font] 方法。还有什么比这更简单的?
【讨论】:
您可以使用UIStringDrawing类别中的方法计算文本的大小:
CGSize textSize = [textView.text sizeWithFont:font
forWidth:textWidth
lineBreakMode: UILineBreakModeWordWrap];
【讨论】:
CGSize countentSize = textView.contentSize;
int numberOfLinesNeeded = countentSize.height / textView.font.lineHeight;
int numberOfLinesInTextView = textView.frame.size.height / textView.font.lineHeight;
CGRect textViewFrame= textView.frame;
textViewFrame.size.height = numberOfLinesNeeded * textView.font.lineHeight;
[textView setFrame:textViewFrame];
【讨论】:
UITextView 是 UIScrollView 与 UILabel 是子视图。
UIScrollView 已经估计高度并在内容中显示文本输入。
所以我们只需将ContentSize.Height 设置为就可以了。
如果ContentInset == UIEdgeInset (a,b,c,d),则必须添加UIEdgeInset的维度
【讨论】: