13

我在 UITextView 中为我的 NSAttributedString 使用了对齐的文本:

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

问题是它拉伸了一些单词以实现合理的对齐,而不是仅仅拉伸单词之间的空格。我觉得这很让人分心,并且知道有一种方法可以使单词不会被拉伸,而只是间距。下面是我的应用程序的屏幕截图,然后是具有某些相同功能的应用程序的屏幕截图,该应用程序也使用对齐的文本和完全相同的字体。

在此处输入图像描述

在此处输入图像描述

我怎样才能达到同样的效果?

任何帮助将不胜感激。

4

2 回答 2

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 文本对齐

于 2015-10-26T13:10:18.857 回答
0

您只需将 hyphenationFactor 更改为 1:

textView.layoutManager.hyphenationFactor = 1
于 2021-10-12T15:38:21.730 回答