Как установить высоту 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.