NSAttributedString对齐文本(不拉伸单词)

时间:2015-03-05 18:12:16

标签: ios uitextview nsattributedstring right-justified

我在UITextView中为NSAttributedString使用了合理的文本:

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

问题在于它会拉伸一些单词以实现对齐,而不是仅仅拉伸单词之间的空格。我发现这非常令人分心,并且知道有一种方法可以使单词不被拉伸,而只是间距。下面是我的应用程序的屏幕截图,后面是来自应用程序的屏幕截图,其中一些功能也使用了对齐文本和完全相同的字体。

enter image description here

enter image description here

我如何达到同样的效果?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

你可以使用一个讨厌的技巧。

您可以使用UIWebView和css以您想要的方式进行对齐。 这是一个示例:

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];

结果如下:

WebView Text Alignment