Как установить высоту UILabel на основе текста, который мы имеем

У меня есть UILabel шириной 260, где у меня длинный текст (может быть, около 1000 символов).

Я хотел установить высоту UILabel на основе содержимого. Иногда у меня может быть 100 символов, иногда у меня может быть 1000 символов).

Основываясь на тексте, как я могу установить высоту UILabel?

Примечание: я создаю UILabel программно.

 UILabel myLabel = [[UILabel alloc] initWithFrame: CGRectMake (30,50,260, height)];

Есть идеи, как это сделать?

Один из способов, который я пытаюсь сделать, это как показано ниже.

Я считаю, что в одной строке 40 символов. Итак, что я делаю, так это нахожу длину текста и делю его на 40. Это даст мне общее количество нужных мне строк.

Но это не удается, когда появляются новые линии.

Это правильный путь?

2 ответа

Решение

Попробуй использовать:

myLabel.numberOfLines = 0;
[myLabel sizeToFit];
NSString * mytext = @"My string";
myLabel.font = [UIFont fontWithName:@"fontName" size:15];
CGSize sz = [mytext sizeWithFont:myLabel.font];
float height = sz.height;
float totalHeight = height*myLabel.numberOfLines;

Обратите внимание, что sizeWithFont устарела в iOS 7.

Другие вопросы по тегам