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

Встроенные шрифты в iOS: почему они не центрированы правильно на оси y?

Я вложил пару шрифтов в свое приложение iOS и обнаружил, что они не имеют правильного расположения в методах и кнопках, они слишком высоки на оси y, есть ли какое-либо решение для этого? Сначала я подумал, что это просто дешевый файл шрифта, который я использовал, но затем я попробовал его (просто посмотреть) с помощью шрифта Adobe, и у него все еще есть проблема.

4b9b3361

Ответ 1

Решение (a?), которое мой друг указал на использование свойства contentEdgeInsets кнопки, я установил его:

myButton.contentEdgeInsets = UIEdgeInsetsMake(10, 0, 0, 0);

Чтобы уменьшить текст до 10 пикселей, теперь текст центрируется. Woot.

Ответ 2

Я слишком борелся с этим.

В зависимости от ситуации я использую разные решения:

  • используя вставки, когда этот элемент поддерживает его
  • заменяя соответствующую метку представлением, которое содержит другую метку в качестве подзапроса. Затем я перемещаю этот новый ярлык внутри него, пока он не будет центрирован. Это работает с заголовками и т.д.

Я еще не пробовал подклассифицировать UILabel (или даже лучше: писать категорию на нем), чтобы включить исправление.

Возможно, я напишу также отчет об ошибке.

Я буду держать вас в курсе этого!

Ответ 4

Проблема центрирования возникает только в UILabels. UITextViews работают правильно. UIButton имеет UILabel внутри, и поэтому имеет ту же проблему.

Чтобы исправить это, вы можете исправить положение шрифта с помощью инструмента, такого как Font Creator. В моем случае нам пришлось исправить его с -200. Таким образом, вы можете использовать UILabel, как обычно, без подкласса или дополнительных категорий.

Ссылка на скачивание шрифта: http://www.high-logic.com/fontcreator.html