我有UITextView
,并希望根据内容更改设置其高度。
如何获得内容的高度。
请指导我。
提前致谢。
答案 0 :(得分:17)
如果您想为某些文字计算UITextView
的高度,那么您可以使用以下方法:
CGSize textViewSize = [text sizeWithFont:[UIFont fontWithName:@"Marker Felt" size:20]
constrainedToSize:CGSizeMake(WIDHT_OF_VIEW, FLT_MAX)
lineBreakMode:UILineBreakModeTailTruncation];
在fontWithName
UITextView
中定义您在UITextView
中使用的字体,大小参数 - WIDHT_OF_VIEW
中文字的大小。替换UITextView
的宽度textViewSize.height
。
UITextField
将包含{{1}}显示文字而不滚动
答案 1 :(得分:10)
-(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; CGRect frame = _textView.frame; frame.size.height = _textView.contentSize.height; _textView.frame = frame; }
答案 2 :(得分:1)
您可以使用UIStringDrawing
类别
CGSize textSize = [textView.text sizeWithFont:font
forWidth:textWidth
lineBreakMode: UILineBreakModeWordWrap];
答案 3 :(得分:0)
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];
答案 4 :(得分:0)
UITextView
是UIScrollView
,UILabel
是subView。
UIScrollView
已在内容中估算高度并显示文字输入。
所以我们设置ContentSize.Height
就可以了。
如果ContentInset == UIEdgeInset (a,b,c,d)
,您必须添加UIEdgeInset