Подтвердить что ты не робот

Как узнать максимальный размер шрифта, разрешенный для данного имени шрифта?

Есть ли способ узнать максимальный размер, разрешенный шрифтом.

Я делаю

textInputTextView.font = [UIFont fontWithName:currentFontName size:doubleFontSize];
frame.size = textInputTextView.contentSize;

Для разных шрифтов я получаю неправильный контент, когда doubleFontSize больше 70. Для некоторых шрифтов я ошибаюсь contentSize, когда переменной doubleFontSize всего 40.

Я предполагаю, что textView.font = doubleSizeFont слишком большой для этих конкретных шрифтов. Все в порядке, когда размер шрифта невелик от 10 до 30.

Есть ли способ узнать максимальный размер, разрешенный определенным шрифтом?

Подробнее:

Мне нужно изображение из UITextView. Я использую UIGraphicsGetImageFromCurrentImageContext. Но я понял, что качество изображения низкое. Поэтому я попытался сделать TextView фрейм и двойной шрифт.

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

4b9b3361

Ответ 1

Вы можете рассчитать высоту/ширину содержимого, используя следующий код. Затем измените размер вашего фрейма. Здесь моя ширина фиксирована (290) и вычисляет высоту.

CGSize strSize= [DataToBeDisplayed sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:CGSizeMake(290.0,99999.0)];
frame.size.height = strSize.height

Ответ 2

Я считаю, что проблема в том, что вы используете UITextView. Текстовые представления наследуются от UIScrollView, поэтому не уменьшает размер шрифта, он только адаптирует его размер содержимого и делает ваш текст прокручиваемым.

Вместо этого используйте UITextField, который также наследуется от UIView (таким образом, он может использоваться как изображение), но позволяет контролировать его. Исправьте его размер до максимума, который вы хотели бы видеть на экране, а затем работая как с методами [mylabel adjustsFontSizeToFitWidth:Y/N], так и с [mylabel setminimumfontsize:somefontsize], ограничьте его, если введен слишком много текста. Это даст вам четкий большой шрифт и динамически подгоняет его при вводе

~/Конец строки