Как узнать ширину усеченного текста UILabel - PullRequest
8 голосов
/ 11 октября 2010

У меня есть UILabel , который содержит динамический текст. Иногда текст слишком длинный для отображения и, таким образом, автоматически усекается . Как узнать ширину видимой части усеченного текста?

sizeThatFits возвращает длину не усеченного текста , поэтому на данный момент я могу определить только, когда будет выполнено усечение. Нужно знать, сколько видно, включая эти три точки. Любые советы?

Уточнение : когда текст обрезается, обычно он меньше ширины UILabel.

Ответы [ 2 ]

5 голосов
/ 11 октября 2010

Робот К правильный.

На вашем месте я бы сделал следующее:

  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 24)];
  label.text = @"this is some really long text that i want in a small label";
  [view addSubview:label];

  CGSize size = [label.text sizeWithFont:label.font constrainedToSize:label.frame.size  
                 lineBreakMode:label.lineBreakMode];

Это должно дать вам значение меньше 200 (с учетом ограниченного максимального размера и метода усечения).

4 голосов
/ 11 октября 2010

Я не понимаю, почему ширина будет отличаться от ширины UILabel, если текст усекается.В любом случае, вы можете использовать sizeWithFont:constrainedToSize:, чтобы вычислить размер строки с заданным шрифтом, но ограниченный «ограничивающим размером».

...