2011-03-15 18 views
12

He incrustado un par de fuentes en mi aplicación para iOS y estoy descubriendo que no están centradas correctamente en etiquetas y botones, están demasiado altas en el eje Y, ¿hay alguna solución para esto? Al principio pensé que era solo un archivo de fuente barato que estaba usando, pero luego lo probé (solo para verlo) con una fuente de Adobe y todavía tiene el problema.Fuentes incrustadas en iOS: ¿por qué no están centradas correctamente en el eje y?

+1

me he dado cuenta de esto también. Sin embargo, nunca tuve tiempo de analizarlo. +1! –

+0

¿Ha comprobado si su problema no es que está utilizando solo letras mayúsculas y las etiquetas se centran como si tuviera letras mayúsculas y minúsculas (por lo que se está considerando un espacio debajo para letras como minúsculas pyq)? – elibud

+0

Estoy usando letras mayúsculas y minúsculas, por lo que probablemente no sea el problema. – Shizam

Respuesta

6

El (? A) Solución de un amigo mío señaló es el uso de la propiedad contentEdgeInsets del botón, lo fijo a:

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

para volcar el texto hacia abajo 10 píxeles y ahora el texto se centrado. Woot.

+0

Pero, ¿y las etiquetas? no funciona con etiquetas – rptwsthi

+0

Es verdad, afortunadamente para una etiqueta puede simplemente ajustar la ubicación de la etiqueta, para los botones está en una especie de lazo :) – Shizam

0

He luchado demasiado con esto.

Dependiendo de la situación, estoy usando diferentes soluciones:

  • utilizando inserciones cuando el elemento en cuestión se apoya
  • sustitución de la etiqueta en cuestión con vistas, que tiene otra etiqueta como su subvista . Luego muevo esa nueva etiqueta dentro de su supervista hasta que está centrada. Esto funciona con barras de título y similares.

Lo que no he intentado aún es subclasificar UILabel (o incluso mejor: escribir una categoría en él) para incluir una solución.

Tal vez también escriba un informe de error.

¡Te mantendré informado sobre eso!

0

El problema de centrado solo ocurre en UILabels. UITextViews funciona correctamente. UIButton tiene un UILabel adentro, y entonces, tiene el mismo problema.

Para solucionarlo, puede corregir la posición de su fuente con una herramienta como Font Creator. En mi caso, tuvimos que corregirlo con -200. De esta forma puede usar UILabel como lo hace normalmente, sin subclases ni categorías adicionales.

Fuente enlace de descarga Creador: http://www.high-logic.com/fontcreator.html

+0

¿Por qué deberíamos 'corregir' una fuente correcta? Es Apple quien lo muestra mal ... Después de corregir, la fuente se verá desplazada en el eje y en UITextViews ... Hasta que Apple corrija esto, tenemos que encontrar una mejor solución, supongo ... – P5ycH0

+0

Bueno, tuve que irme encendido, así que solo corrigí la fuente. Estoy de acuerdo, Apple tiene que arreglarlo. Pero eso puede llevar años ... Y tampoco sé una mejor solución. –

Cuestiones relacionadas