Странное определение размера строки в iPhone - PullRequest
0 голосов
/ 16 августа 2010

Я использовал UIWebView, чтобы просто показать строку с размером шрифта 14px (объявлено в стиле)

строка занимает примерно 1/4 - 1/3 экрана iphone (по высоте) с ограничениемшириной 190

, тогда я использую NSString sizeWithFont: constrainedToSize: для определения размера этой строки.

UIFont * font = [UIFont fontWithName: @ "ArialMT" size: 14.0f];

CGSize titleConstraint = CGSizeMake (190, 440);

CGSize tSize = [s sizeWithFont: font boundTToSize: titleConstraint lineBreakMode: UILineBreakModeWordWrap];

* 1012распечатывается как 85

Но на самом деле я думаю, что это больше, чем 120, 1/4 - 1/3 от высоты экрана.

Почему существует разница между измерением размера строки ифактический UIWebView?

проблема в том, что размер UIFont не совпадает с 14px?(в UIWebView размер шрифта составляет 14px, в строке sizeWithFont я использовал размер шрифта 14.0f)

Если это так, как мне перенести размер шрифта html px в размер iPhone UIFont?

спасибо

1 Ответ

2 голосов
/ 16 августа 2010

Метод sizeWithFont: дает вам размер, который вам понадобится, если вы рисуете NSString напрямую.UIWebView собирается обвести его, применить CSS-элементы к нему и, возможно, сделать какой-то волшебный алгоритм «сделать так, чтобы он выглядел хорошо для веб-браузера» перед рисованием.Таким образом, вы можете рассчитать, какой размер будет использовать UIWebView.Я бы порекомендовал одну из этих альтернатив.

  • Не используйте UIWebView, если важно получить идеальное размещение.Реализуйте свой собственный код рисования текста.
  • Просто поиграйте с размером, пока он не будет выглядеть правильно.(Непонятно, зачем вам нужно вычислять этот размер или текст может измениться.)
...