UILabel con fuente personalizada mal representada

En mi aplicación de iPhone, establezco una fuente personalizada para todos los UILabels (para ser más precisos, subclasé UILabel, anulando un método, configurando la fuente personalizada en ese método y luego estableciendo todas las tags en IB en esa class personalizada). El problema ahora es que todos los texts están demasiado por debajo de la línea base esperada, por lo que las letras como 'y' y 'g' se cortan a continuación. He leído acerca de problemas similares aquí:

UIButton custom font vertical alignment

La fuente instalada a medida no se muestra correctamente en UILabel

Luego traté de jugar con el ascender como se describe en esas soluciones (se estableció inicialmente en 990). Establecerlo en alnetworkingedor de 500 dio buenos resultados, pero no mucho después de eso, noté que las líneas en los texts de varias líneas se mezclaron entre sí, lo que, por supuesto, no es aceptable. En UITextViews, la fuente parece quedar bien con la línea de base inicial, aunque …

¿Hay una forma práctica de resolver este problema? Por supuesto, podría mantener varias fonts con ascendentes diferentes para texts de varias líneas o de una sola línea, pero esa es una solución bastante complicada.

PD: La fuente se proporciona en formatting otf, aunque intenté convertirla a ttf, lo que lleva a los mismos resultados.

De acuerdo, por si alguien está interesado, pensé en una solución que debería funcionar para mí. Simplemente consiste en anular el método drawTextInRect de UILabel , modificando el rectángulo dado y pasándolo al método de la superclass.

 - (void)drawTextInRect:(CGRect)rect { CGFloat pointSize = self.font.pointSize; CGRect newRect = CGRectMake(rect.origin.x, rect.origin.y - (0.25 * pointSize), rect.size.width, rect.size.height); [super drawTextInRect:newRect]; } 

Quizás tenga que probar diferentes valores distintos de 0.25 aunque …