Autosizable шрифт в textView

Рейтинг: 1Ответов: 1Опубликовано: 27.10.2014

Как сделать изменяющийся шрифт в textView?

У меня есть постоянного размера rect для textView, при вводе нескольких строк текста размер шрифта должен меняться, чтобы вместить весь текст.

скриншот
(Сверху UILable, ниже UITextView)

Как видно, в TextView текст неправильно размещается, пробовал подгонять, используя значение conteinerSize.height, но он неправильные числа показывает.

NSString*ourText = [self.textField.text stringByReplacingCharactersInRange:range withString:string];

UIFont *font = [UIFont fontWithName:@"Marker Felt" size:470];

int i;
for(i = 470; i > 10; i=i-20)
{
    font = [font fontWithSize:i];

    CGSize constraintSize = CGSizeMake(200.0f, MAXFLOAT);

    CGSize textSize = [ourText sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    if(textSize.height <= 160.0f)
        break;
}

self.textView.font=font;
self.textView.text=ourText;

Ответы

▲ 1Принят

[self.textField setAdjustsFontSizeToFitWidth:YES] не подходит? Просто UITextView со скролом, ему как бы не надо.

UPD

нагуглил такую вот категорию но поизучав увидел что категория NSString(UIStringDrawing) почти полностью депрекейтед после iOS7.0, которая используется выше. Поэтому Вам придется поизучать этот вопрос в принципе идея ясна. Как решите траблу буду рад Вашему решению, будет время сам выложу.

UPD

Пришла в голову еще одна идея вот проджек где я реализовал ее.