2016-04-01 4 views
-2

Привет, у меня есть описание продукта и данные, поступающие из API, я хочу, чтобы данные отображались динамически. Зависимые на этой высоте, мне нужно добавить некоторые другие UiElements, пожалуйста, помогите мнеКак показать динамическую высоту текста UITextView

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

+0

вы хотите изменить высоту TextView динамически в зависимости от содержания? или изменить длину содержимого в зависимости от высоты textView? – MudOnTire

+0

@Mud Я хочу изменить динамическую высоту textView в соответствии с содержанием или Я хочу получить количество строк содержания –

ответ

1

UILabel и UITextView имеет метод: «sizeThatFits», он может вернуть размер приспосабливать текст базы на заданный размер, поэтому все, что вам нужно сделать, это:

UITextView *textView = [[UITextView alloc] init]; 
textView.text = yourContent; 
CGSize fitSize = [textView sizeThatFits:CGSizeMake(contentWidth, 10000)]; 
CGFloat contentHeight = fitSize.height; 
0

Попробуйте

UITextView *textView = [[UITextView alloc] initWithFrame:<set frame>]; 
textView.text = <text> 
[textView sizeToFit]; // calls sizeThatFits: with current view bounds and changes bounds size. 
0

Если вам не нужно редактирование текста и цель чистоты кода, вы можете использовать UILabel вместо UITextView, просто используйте AutoLayout и установите ограничения, как показано ниже. Установите Lines в 0 для Expanding Label. Если вы все сделаете правильно, изменение размера и смещения элементов управления будет происходить автоматически, вы можете просто изменить текст в Expanding Label

pic

Смежные вопросы