Нарисуйте изменяющийся текст в середине представления - PullRequest
0 голосов
/ 24 марта 2012

Мне нужно нарисовать текст в середине представления, текст может состоять из 1 буквы или нескольких слов. Я рисую текст в методе - (void)drawRect:(CGRect)rect.

Что я хочу, так это чтобы текст был центрирован по горизонтали и вертикали (я знаю, как это сделать). НО Я хочу обновить размер шрифта в соответствии с длиной текста так:

строка типа "S" будет отображаться с размером шрифта 90 пунктов, а "привет мир" - с размером шрифта 30 пунктов.

Есть идеи?

1 Ответ

1 голос
/ 24 марта 2012

UILabel может использоваться для центрирования по вертикали и горизонтали.Используя adjustsFontSizeToFitWidth, он также может сжимать текст, чтобы он соответствовал ширине метки.

label.adjustsFontSizeToFitWidth = YES;
label.minimumFontSize = 10.0; // or whatever...

Если вам нужен больший контроль над размером, я думаю, вы должны сделать позиционирование самостоятельно.Вы можете использовать сообщения sizeWithFont: и sizeWithFont:forWidth:lineBreakMode: для строки NSString, чтобы получить размер строки с определенным шрифтом, а затем выяснить, какой размер использовать и где его рисовать.См. документацию .

...