2016-11-16 5 views
0

Я создаю один UILable, используя автозапуск в ячейке Tableview, который автоматически устанавливает количество строк при назначении текста.Как получить номер строки в UILable, когда он создается с использованием автозапуска

Но как я могу найти то, что номер строки есть в Lable

lblDesc.text = [самоуправления strClearTextMessage: [distSmartcategoryDetil objectForKey: @ "Описание"]];

CGRect TextRect = [lblDesc.text boundingRectWithSize: CGSizeMake (292 * screenScal, 9999) опции: NSStringDrawingUsesLineFragmentOrigin атрибуты: @ {NSFontAttributeName: lblDesc.font} контекст: ноль];

CGSize size = textRect.size;

int numberOfLines = size.height/12.0 * screenScal; NSLog (@ "numberOfLines% d", numberOfLines);

Стараюсь много строки кода, как описано выше, но не может в состоянии получить идеальный номер линии

+0

Ваша ширина этикетки фиксирована? т.е. 292 – Mahesh

ответ

0

Попробуйте это:

[label setNumberOfLines:0]; 
[label setLineBreakMode:NSLineBreakByWordWrapping]; 
[label sizeToFit]; 
float numLines = label.frame.size.height/label.font.lineHeight; 
NSLog(@"numLines %f", numLines); 
0

Спасибо всем вам

я получить идеальную линию используя функцию ceil.

int numberOfLines = ceil (textRect.size.height/lblDesc.font.lineHeight);

+0

Обратите внимание, что это не удастся, если ваш текст содержит emoji. – OlDor

+0

@OlDor, то как я могу достичь this.can вы можете помочь получить количество строк UILable, что дизайн с ограничением (autolayout). – chetu