Nella mia app per iPhone ho impostato un font personalizzato per tutti gli UILabels (per essere più precisi, ho sottoclassi UILabel, sovrascrivendo un metodo, impostando il carattere personalizzato in quel metodo e poi impostando tutte le etichette in IB quella classe personalizzata). Il problema ora è che tutti i testi sono resi troppo al di sotto della linea di base prevista, quindi le lettere come 'y' e 'g' sono tagliate sotto. Ho letto di problemi simili qui:UILabel con font personalizzato errato
UIButton custom font vertical alignment
Custom installed font not displayed correctly in UILabel
Allora ho provato trafficando con l'ascendente, come descritto in quelle soluzioni (è stato impostato a 990 inizialmente). Portarlo a circa 500 ha portato a buoni risultati, ma non molto tempo dopo ho notato che le linee nei testi multilinea si fondevano l'una nell'altra, il che ovviamente non è accettabile. Su UITextViews, il font sembra rendere bene con la linea di base iniziale però ..
Esiste un modo pratico per risolvere questo problema? Naturalmente potrei conservare diversi font con ascender diversi per i testi a linea singola o multipla, ma questa è una soluzione piuttosto caotica ..
PS: il font è fornito in formato otf, anche se ho provato a convertirlo in ttf , portando agli stessi risultati.
ho usato questo. - (void) drawTextInRect: (CGRect) rect { CGFloat pointSize = self.font.pointSize; CGRect newRect = CGRectMake (rect.origin.x, rect.origin.y + (0,2 * pointSize), rect.size.width, rect.size.height); [super drawTextInRect: newRect]; } – kgibbon