2013-07-17 15 views
5

Sto utilizzando NSAttributedString (e NSMutableAttributeString) per la scrittura in PDF tramite UIGraphicsBeginPDFContextToFile. Quando esco da una stringa attribuita con attributi di sottolineatura, la sottolineatura viene interrotta quando un discensore di lettere supera la sottolineatura.Soluzione alternativa cercata per: iOS 6 NSAribributoString Descenders Block Underline

Ecco un esempio (cattura schermo) mostra la corrente di uscita:

sample underline image

E qui è il codice che costruisce quel campione stringa attribuito:

NSAttributedString* ftype = 
     [[NSMutableAttributedString alloc] 
        initWithString:@"Dangerous" 
         attributes:@{ 
            NSParagraphStyleAttributeName:pstyle, 
            NSFontAttributeName:[UIFont fontWithName:@"TimesNewRomanPS-BoldMT" size:48.0], 
            NSForegroundColorAttributeName:[UIColor redColor], 
            NSUnderlineStyleAttributeName:[NSNumber numberWithInt:NSUnderlineStyleSingle] 
            } 
     ]; 

del mio cliente e la mia preferenza è che la sottolineatura sia continua e idealmente spostata sotto il discensore.

disegnare manualmente la sottolineatura è difficile in quanto ci sarebbe da calcolatore la posizione del testo delle parole dopo il layout (a volte il testo non è così semplice come nell'esempio precedente).

Qualcuno ha una correzione per mettere la sottolineatura a) inferiore o b) renderla continua?

Grazie in anticipo.

risposta

2

So che era vecchio e dopo la ricerca non ha trovato risposta. La soluzione che ho trovato è presente nel dizionario si passa per attributi a NSAttributedString initWithString: attributi: aggiungere questo

NSExpansionAttributeName: @ -0.0001f

Questo scala il glifo, e sembra anche con questa piccola quantità la sottolineatura non viene tagliato (beh, non con il font 13pt che stavo usando). Anche se questo non sembra l'uso previsto di NSExpansionAttributeName, ma non è stato possibile trovare un'altra soluzione.

Problemi correlati