2015-03-05 17 views
13

Używam tekst wyjustowany do mojego NSAttributedString w moim UITextView:NSAttributedString uzasadnione tekst (bez rozciągania słów)

var paragraphStyle = NSMutableParagraphStyle()   
paragraphStyle.alignment = NSTextAlignment.Justified; 
normalAttributes.setObject(paragraphStyle, forKey: NSParagraphStyleAttributeName) 

Problemem jest to, że ciągnie się kilka słów w celu osiągnięcia uzasadnionego wyrównania, a nie tylko rozciąganie przestrzeni między słowami. Uważam to za bardzo rozpraszające i wiem, że istnieje sposób, aby takie słowa nie były rozciągane, a jedynie odstępy. Poniżej zrzut ekranu z mojej aplikacji, a następnie jeden z aplikacji z niektórymi takimi samymi funkcjami, który używa również tekstu z poprawką i dokładnie tej samej czcionki.

enter image description here

enter image description here

Jak mogę osiągnąć ten sam efekt?

Każda pomoc zostanie bardzo doceniona.

+2

Cóż, była to tylko przypuszczenie. :(Przepraszam, że to nie zadziałało, jeśli naprawdę chcesz się w to głęboko zagłębić, możesz po prostu zagłębić się w Zestaw do Tekstu i nadpisać układ (który może faktycznie być tym, co robi inna aplikacja). – matt

Odpowiedz

3

Istnieje nieprzyjemna sztuczka, z której można korzystać.

Możesz użyć UIWebView i css, aby wykonać wyrównanie w wybrany sposób. Oto przykład:

NSString *css = [NSString stringWithFormat: 
       @"<html><head><style>body { background-color: white; text-align: %@; font-size: %ipx; color: black;} a { color: #172983; } </style></head><body>", 
       @"justify", 
       11]; 

NSMutableString *desc = [NSMutableString stringWithFormat:@"%@%@%@", 
         css, 
         @"15 Προσέχετε ἀπὸ τῶν ψευδοπροφητῶν͵ οἵτινες ἔρχονται πρὸς ὑμᾶς ἐν ἐνδύμασι προβάτων͵ ἔσωθεν δέ εἰσι λύκοι ἅρπαγες. 16 ἀπὸ τῶν καρπῶν αὐτῶν", 
         @"</body></html>"]; 

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(20, 80, 150, 100)]; 
[self.view addSubview:webView]; 
[webView loadHTMLString:desc baseURL:nil]; 

A oto wynik:

WebView Text Alignment

+0

Dziękuję za odpowiedź, ale Podejście UIWebView nie jest opłacalne dla tego, co robię. Musi to być widok UITextView lub renderowany tekst rdzenia: –

+0

http://stackoverflow.com/questions/30300323/justify-text-in-ios-swift- or-objective -c-without-breaking-tracking-kerning-let –

Powiązane problemy