Почему именно пользовательские шрифты обычно неправильно отображаются в iOS?

Я создал несколько различных приложений с пользовательскими шрифтами. Я использовал около шести разных, все из разных источников. У каждого из них были проблемы при отображении в iOS. С некоторыми из них они рисовали UILabels выше или ниже системного шрифта того же размера. Другие рисовали в UILabels иначе, чем в UITextFields, рисуя меньше и ниже в UITextFields. Практически все они отображаются в UITextFields по-разному, когда они редактируются, и когда они не редактируются, создавая эффект прыжка текста вниз, когда UITextField входит в режим редактирования. Для тех, кто занимается мелкой детализацией, которая должна быть идеальной до пикселя, это довольно плохо.

Мой вопрос заключается в следующем: что именно в этих шрифтах вызывает такие проблемы? Есть ли какой-то особый атрибут, который есть у системного шрифта, которого нет у этих других шрифтов?

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

Эти проблемы легко воспроизвести, но, поскольку я знаю, что кто-то спросит, я перечислю несколько конкретных шрифтов, которые вызвали у меня проблемы:

  • PT без жирного шрифта
  • Avenir Next LT Pro Medium Condensed
  • Королев Конденсированная среда

person Micah Hainline    schedule 11.10.2012    source источник
comment
Вы упоминаете по сравнению с системным шрифтом - можете ли вы воспроизвести какие-либо из этих жалоб с другими стандартными шрифтами iOS, кроме системных по умолчанию?   -  person Freney    schedule 15.10.2012
comment
Ни один из стандартных шрифтов iOS, на которые я смотрел, не демонстрирует такого поведения.   -  person Micah Hainline    schedule 16.10.2012
comment
Может сами шрифты бракованные? Метрические данные в шрифте, определяющие положение и размер текста, могут быть неверными. Может быть, вы могли бы попробовать использовать эти шрифты в других системах и посмотреть, есть ли у них такая же проблема.   -  person wschang    schedule 18.10.2012
comment
я столкнулся с подобными аномалиями шрифта, в конце концов я просто расположил свои метки немного ниже или выше...   -  person manitu    schedule 05.12.2012
comment
если вы загрузите Font Tool Suite в моем ответе ниже, это поможет вам решить многие проблемы с пользовательскими базовыми шрифтами, которые у вас есть.   -  person NSTJ    schedule 06.12.2012
comment
Похоже, что пользовательские шрифты будут выглядеть правильно на iOS 7, но если вы запустите то же приложение на iOS 6, они будут выглядеть смещенными, поэтому, если вы исправили макет вручную, вам нужно будет исправить его снова для iOS 7.   -  person leolobato    schedule 26.09.2013


Ответы (1)


Пробовали ли вы использовать утилиты командной строки Apple Font Tool Suite? С его помощью вы можете настроить базовые свойства шрифтов (я признаю, что это не отвечает на компонент «почему» вашего вопроса, однако инструменты могут сделать вопрос спорным). Принятый ответ здесь отлично объясняет их использование.

person NSTJ    schedule 24.10.2012