Как установить высоту UITextView в соответствии с его содержанием в цели c - PullRequest
6 голосов
/ 13 сентября 2011

У меня есть UITextView и я хочу установить его высоту в соответствии с изменениями содержимого.

Как узнать высоту содержимого.

Пожалуйста, ведите меня.

Заранее спасибо.

Ответы [ 5 ]

17 голосов
/ 13 сентября 2011

Если вы хотите вычислить высоту вашего 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 width width вашего UITextView.

textViewSize.height будет содержать высоту, UITextField для отображения текста без прокрутки

10 голосов
/ 13 сентября 2011
-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    CGRect frame = _textView.frame;
    frame.size.height = _textView.contentSize.height;
    _textView.frame = frame;
}
1 голос
/ 13 сентября 2011

Вы можете рассчитать размер текста по методу из UIStringDrawing Категория:

CGSize textSize = [textView.text sizeWithFont:font 
                                 forWidth:textWidth 
                                 lineBreakMode: UILineBreakModeWordWrap];
0 голосов
/ 16 июля 2015

UITextView - это UIScrollView с UILabel - это субпросмотр. UIScrollView уже оцените высоту и покажите ввод текста в Контенте.

Итак, мы просто установили ContentSize.Height в порядке.

Если ContentInset == UIEdgeInset (a,b,c,d), необходимо добавить размерность UIEdgeInset

см. Подробнее: как оценить высоту UITextView

0 голосов
/ 03 марта 2014
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];
...