Я вложил пару шрифтов в свое приложение iOS и обнаружил, что они не имеют правильного расположения в методах и кнопках, они слишком высоки на оси y, есть ли какое-либо решение для этого? Сначала я подумал, что это просто дешевый файл шрифта, который я использовал, но затем я попробовал его (просто посмотреть) с помощью шрифта Adobe, и у него все еще есть проблема.
Встроенные шрифты в iOS: почему они не центрированы правильно на оси y?
Ответ 1
Решение (a?), которое мой друг указал на использование свойства contentEdgeInsets кнопки, я установил его:
myButton.contentEdgeInsets = UIEdgeInsetsMake(10, 0, 0, 0);
Чтобы уменьшить текст до 10 пикселей, теперь текст центрируется. Woot.
Ответ 2
Я слишком борелся с этим.
В зависимости от ситуации я использую разные решения:
- используя вставки, когда этот элемент поддерживает его
- заменяя соответствующую метку представлением, которое содержит другую метку в качестве подзапроса. Затем я перемещаю этот новый ярлык внутри него, пока он не будет центрирован. Это работает с заголовками и т.д.
Я еще не пробовал подклассифицировать UILabel (или даже лучше: писать категорию на нем), чтобы включить исправление.
Возможно, я напишу также отчет об ошибке.
Я буду держать вас в курсе этого!
Ответ 3
Вы должны заметить, что классы UIControl имеют свойство contentVerticalAlignment (а также contentHorizontalAlignment).
Ответ 4
Проблема центрирования возникает только в UILabels. UITextViews работают правильно. UIButton имеет UILabel внутри, и поэтому имеет ту же проблему.
Чтобы исправить это, вы можете исправить положение шрифта с помощью инструмента, такого как Font Creator. В моем случае нам пришлось исправить его с -200. Таким образом, вы можете использовать UILabel, как обычно, без подкласса или дополнительных категорий.
Ссылка на скачивание шрифта: http://www.high-logic.com/fontcreator.html