ios - custom - Línea base UIFont personalizada desplazada
swift uifont (6)
Tengo un problema con UIFonts personalizados. Cargo 6 de ellos (fuente A en regular / negrita / regularItalica / negritaItalica, fuente B en variantes condensadas / condensadas inclinadas).
Sin embargo, esto es lo que da cuando se representa:
Las dos primeras filas están bien, pero la última muestra un problema de línea base.
He intentado cambiar UPM, ascendente, descendente, altura x de la fuente en FontLab para que coincida con los valores de la primera fuente (que se representan correctamente), pero fue en vano. Intenté convertir el formato de fuente de OTF a TTF, sin suerte. Todo lo que intento, siempre se traduce de esta manera.
¿Alguien tiene experiencia con esto?
Debe comprobar estas fuentes una al lado de la otra en algún software vectorial como Adobe Illustrator o CorelDraw. Si también encuentras el renderizado de fuentes en la misma forma base desplazada en estos programas, entonces tiene algo que ver con la fuente misma. es decir, las fuentes se pueden crear con dichos píxeles desplazados dentro del archivo de fuente. Por lo tanto, no es necesario realizar ningún cambio de este tipo en los parámetros .xib para ningún UIButton o UITextField, etc.
Comparta sus archivos de fuentes aquí si es posible.
Hola, también me he enfrentado a tal problema en ese momento que he configurado Title Content Edge en consecuencia para UIButton .
Entonces, si estás usando estas fuentes para UIButton , seguramente puedes usar esto.
Espero que esto te ayude.
Otra solución interesante que encontré proviene de la siguiente publicación: Here
Entonces debería verificar si este es el caso con su fuente, como dice en uno de los comentarios:
Mi solución realmente arregla la fuente personalizada para que funcione con el motor de renderizado de iOS, lo que le permite usarla como un reemplazo directo para las fuentes estándar sin ninguna modificación.
¿Y cómo lo hace?
Básicamente, sugiere editar las métricas de la fuente con una herramienta externa de Apple (consulte la referencia de métricas de fuentes en https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/CustomTextProcessing/CustomTextProcessing.html#//apple_ref/doc/uid/TP40009542-CH4-SW66 )
Para editarlos en la fuente, deberá descargar Apple Font Tool Suite. Una vez que haya instalado esto, debe abrir Terminal y navegar hasta el directorio que contiene su fuente. Después de eso, ingrese el siguiente comando:
ftxdumperfuser -t hhea -A d font.ttf
Esto creará un archivo llamado font.hhea.xml, abrirá este nuevo archivo en un editor de texto y ajustará los valores para ascendente y descendente. En general, si la fuente se encuentra demasiado baja, desea disminuir el ascendente y aumentar el descendente. Después de editar y guardar, ingrese el siguiente comando en la terminal para reconstruir su archivo de fuente:
ftxdumperfuser -t hhea -A f font.ttf
Ahora puede usar el archivo font.ttf en su aplicación. Si la fuente aún no está bien, repita el procedimiento anterior hasta que esté satisfecho.
Por cierto, Apple Font Tool Suite no es el único programa que puede ayudarte. Por lo tanto, si no desea instalar una copia virtual de macOs, puede usar FontForge para Windows para jugar con ascendente y descendente: elemento -> información de fuente, luego pestaña OS / 2 y luego métricas. Y no olvide marcar la casilla ''Apple'' al generar la fuente al final. ¡Buena suerte!
tal vez eche un vistazo a la propiedad UITextView / UITextLabel ''thLabel.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;''
esto define la alineación vertical. Fue útil para mí hace unos días en un caso similar
Here o incluso here puede encontrar las soluciones para usted. Se trata de la línea de base.
Nota Hay un problema al instalar Apple Fonts Utility en El Capitan. Consulte https://apple.stackexchange.com/questions/211138/apple-font-tools-cannot-install-in-macbook-pro-el-capitan para obtener una solución alternativa.
Para editarlos en la fuente, deberá descargar Apple Font Tool Suite. Una vez que haya instalado esto, debe abrir Terminal y navegar hasta el directorio que contiene su fuente. Después de eso, ingrese el siguiente comando:
ftxdumperfuser -t hhea -A d font.ttf Esto creará un archivo llamado font.hhea.xml, abrirá este nuevo archivo en un editor de texto y ajustará los valores para ascendente y descendente. En general, si la fuente se encuentra demasiado baja, desea disminuir el ascendente y aumentar el descendente. Después de editar y guardar, ingrese el siguiente comando en la terminal para reconstruir su archivo de fuente:
ftxdumperfuser -t hhea -A f font.ttf Ahora puede usar el archivo font.ttf en su aplicación. Si la fuente aún no está bien, repita el procedimiento anterior hasta que esté satisfecho.
O puede cambiar fácilmente NSBaselineAttributeName de la siguiente manera:
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:@"a string"
attributes:@{ NSBaselineOffsetAttributeName : @-13 }];