2012-03-24 3 views
0

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

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

Строка типа «S» будет нарисована в размере шрифта 90 точек, но «мир привет» будет нарисован в размере 30 точек шрифта.

Любые идеи?

ответ

1

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

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

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

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