我有一个UITextView
,希望根据其内容变化设置其高度。
如何获取内容的高度。
请指导我。
提前感谢。
我有一个UITextView
,希望根据其内容变化设置其高度。
如何获取内容的高度。
请指导我。
提前感谢。
如果您想为某些文本计算您的UITextView
的高度,则可以使用以下方法:
CGSize textViewSize = [text sizeWithFont:[UIFont fontWithName:@"Marker Felt" size:20]
constrainedToSize:CGSizeMake(WIDHT_OF_VIEW, FLT_MAX)
lineBreakMode:UILineBreakModeTailTruncation];
在fontName
中定义您在UITextView
中使用的字体,在大小参数中定义文本的大小。用UITextView
的宽度替换WIDHT_OF_VIEW
。
textViewSize.height
将包含UITextField
显示文本而不滚动所需的高度。
[text sizeWithFont:font]
方法。还有什么比这更简单的呢? - Nekto-(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; CGRect frame = _textView.frame; frame.size.height = _textView.contentSize.height; _textView.frame = frame; }这段代码是一个iOS开发中的方法,用于在视图出现后调整文本框的大小以适应其内容。具体来说,它通过获取文本框的内容大小来设置文本框的高度。
UIStringDrawing
类别中的方法计算文本的大小:CGSize textSize = [textView.text sizeWithFont:font
forWidth:textWidth
lineBreakMode: UILineBreakModeWordWrap];
sizeWithFont
已经被弃用。
CGRect rect = [textView.text boundingRectWithSize:CGSizeMake(textView.frame.size.width, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: textView.font}
context:nil];
rect.size.width = ceil(rect.size.width);
rect.size.height = ceil(rect.size.height);
希望能对某人有所帮助。愉快编程。
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];