2012-06-05 3 views
0

Моя конечная цель - изменить размер шрифта, чтобы различные слова соответствовали одной и той же прямоугольной области. Я думал, что размерWithFont будет отличным методом для использования, но я продолжаю получать ширину 0, и я смущен.sizeWithFont Возвращает ширину 0

NSString *name = @"Test Word"; 
CGFloat fontSize = 32.0; 
UIFont *font = [UIFont fontWithName:@"TimeNewRomanPSMT" size: fontSize]; 
CGSize sWidth = [name sizeWithFont:font 
      constrainedToSize:CGSizeMake(fontSize, CGFLOAT_MAX) 
      lineBreakMode:UILineBreakModeWordWrap]; 
NSLog(@"sWidth = %3.1f; rec.width n= %3.1f ", sWidth.width, rec.width); 

Мой план заключается в проходным размеров шрифта, пока ширина не подходит, но sWidth.width постоянно возвращается 0.

Крис имя

ответ

6

шрифт TimesNewRomanPSMT и не TimeNewRomanPSMT.

Обратите внимание на s after Times, обычную ошибку!

Этот веб-сайт является очень полезным для проверки имен шрифтов, а также перечень и имея пример всех шрифтов, доступных в прошивкой:

http://iosfonts.com/

+0

Чувак, вы потрясающий. Изменил его на AmericanTypewriter, и он отлично работал. Тем не менее, почему компилятор не поймал это? – user3457079

+0

Имя шрифта является строкой и проверяется во время выполнения, это строка, которая проверяется на шрифты конкретной операционной системы, на которой вы работаете. Я согласен с тем, что это склонность к ошибкам, я лично предпочитаю ставить ее в константу. –

+0

От анонимного пользователя: компилятор этого не понимает, потому что это не ошибка компиляции. Он не знает, какие шрифты доступны .. и не проверяет. Как только шрифт с этим именем будет доступен, он будет работать. – powtac

1

первое, что вы должны предложить и проверить в этом случай - ваш шрифт не nil. Это может произойти, если вы ввели неправильное имя шрифта

Смежные вопросы