如何根据目标c中的内容设置UITextView的高度

时间:2011-09-13 11:56:06

标签: iphone objective-c text height uitextview

我有UITextView,并希望根据内容更改设置其高度。

如何获得内容的高度。

请指导我。

提前致谢。

5 个答案:

答案 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)

UITextViewUIScrollViewUILabel是subView。 UIScrollView已在内容中估算高度并显示文字输入。

所以我们设置ContentSize.Height就可以了。

如果ContentInset == UIEdgeInset (a,b,c,d),您必须添加UIEdgeInset

的维度

了解详情:how to estimate height of UITextView