2013-07-17 16 views
5

Używam NSAttributedString (i NSMutableAttributeString) do pisania do pliku PDF przez UIGraphicsBeginPDFContextToFile. Kiedy wyprowadzam przypisany ciąg z atrybutami podkreślenia, podkreślenie jest przerywane, gdy podkreślanie liter jest podkreślane.Obejście problemu: iOS 6 NSAttributedString Descenders Block Underline

Oto próbka (screen capture) pokazujący Prąd wyjścia:

sample underline image

A oto kod, który buduje próbki nadany ciąg:

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

mojego klienta i moje preferencje jest to, że podkreślenie jest ciągłe, i idealnie przesunięte poniżej wznoszenia.

Ręczne rysowanie podkreślenia jest trudne, ponieważ musielibyśmy skompletować pozycję tekstową słów po układzie (czasami tekst nie jest tak prosty jak powyższy przykład).

Czy ktoś ma poprawkę, aby umieścić podkreślenie: a) niżej lub b) uczynić go ciągłym?

Z góry dziękuję.

Odpowiedz

2

Wiem, że to było stare i po przeszukaniu nie znalazłem odpowiedzi. Rozwiązanie znalazłem w słowniku Ci przepustkę do atrybutów NSAttributedString initWithString: atrybuty: dodać ten

NSExpansionAttributeName: @ -0.0001f

To skaluje glif i wydaje się nawet z tej niewielkiej ilości podkreślenie nie jest przycinany (no cóż, nie przy użyciu czcionki 13pt, której używałem). Chociaż nie wydaje się to zamierzonym użyciem NSExpansionAttributeName, ale nie można znaleźć innego rozwiązania.

Powiązane problemy