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

Cas*_*ins 13 uitextview nsattributedstring ios right-justified

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

var paragraphStyle = NSMutableParagraphStyle()        
paragraphStyle.alignment = NSTextAlignment.Justified;
normalAttributes.setObject(paragraphStyle, forKey: NSParagraphStyleAttributeName)
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

在此输入图像描述

我如何达到同样的效果?

任何帮助将不胜感激.

Lef*_*ris 3

您可以使用一个令人讨厌的技巧。

\n\n

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

\n\n
NSString *css = [NSString stringWithFormat:\n                 @"<html><head><style>body { background-color: white; text-align: %@; font-size: %ipx; color: black;} a { color: #172983; } </style></head><body>",\n                 @"justify",\n                 11];\n\nNSMutableString *desc = [NSMutableString stringWithFormat:@"%@%@%@",\n                         css,\n                         @"15 \xce\xa0\xcf\x81\xce\xbf\xcf\x83\xe1\xbd\xb3\xcf\x87\xce\xb5\xcf\x84\xce\xb5 \xe1\xbc\x80\xcf\x80\xe1\xbd\xb8 \xcf\x84\xe1\xbf\xb6\xce\xbd \xcf\x88\xce\xb5\xcf\x85\xce\xb4\xce\xbf\xcf\x80\xcf\x81\xce\xbf\xcf\x86\xce\xb7\xcf\x84\xe1\xbf\xb6\xce\xbd\xcd\xb5 \xce\xbf\xe1\xbc\xb5\xcf\x84\xce\xb9\xce\xbd\xce\xb5\xcf\x82 \xe1\xbc\x94\xcf\x81\xcf\x87\xce\xbf\xce\xbd\xcf\x84\xce\xb1\xce\xb9 \xcf\x80\xcf\x81\xe1\xbd\xb8\xcf\x82 \xe1\xbd\x91\xce\xbc\xe1\xbe\xb6\xcf\x82 \xe1\xbc\x90\xce\xbd \xe1\xbc\x90\xce\xbd\xce\xb4\xe1\xbd\xbb\xce\xbc\xce\xb1\xcf\x83\xce\xb9 \xcf\x80\xcf\x81\xce\xbf\xce\xb2\xe1\xbd\xb1\xcf\x84\xcf\x89\xce\xbd\xcd\xb5 \xe1\xbc\x94\xcf\x83\xcf\x89\xce\xb8\xce\xb5\xce\xbd \xce\xb4\xe1\xbd\xb3 \xce\xb5\xe1\xbc\xb0\xcf\x83\xce\xb9 \xce\xbb\xe1\xbd\xbb\xce\xba\xce\xbf\xce\xb9 \xe1\xbc\x85\xcf\x81\xcf\x80\xce\xb1\xce\xb3\xce\xb5\xcf\x82. 16 \xe1\xbc\x80\xcf\x80\xe1\xbd\xb8 \xcf\x84\xe1\xbf\xb6\xce\xbd \xce\xba\xce\xb1\xcf\x81\xcf\x80\xe1\xbf\xb6\xce\xbd \xce\xb1\xe1\xbd\x90\xcf\x84\xe1\xbf\xb6\xce\xbd",\n                         @"</body></html>"];\n\nUIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(20, 80, 150, 100)];\n[self.view addSubview:webView];\n[webView loadHTMLString:desc baseURL:nil];\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是结果:

\n\n

WebView 文本对齐

\n