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

标签 ios uitextview nsattributedstring right-justified

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

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

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

enter image description here

enter image description here

如何达到同样的效果?

如有任何帮助,我们将不胜感激。

最佳答案

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

您可以使用 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

关于ios - NSAttributedString 对齐文本(不拉伸(stretch)单词),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884792/

相关文章:

swift - 我如何将文本从文本字段附加到 TextView 并每次快速换行?

ios - 使用 swift(IOS 应用程序)自动滚动 UITextView

iphone - 当 NSAttributedString + NSString 发送到 UIActivityViewController 并选择邮件应用程序时,iOS 7 应用程序崩溃

iphone - iOS——在开始一项漫长且显然牢不可破的任务之前说服 NSOperation 屈服于其他线程?

ios - Stripe 确认 Swift 卡的详细信息

ios - 触摸移动有问题

ios - 删除使用 NSMutableAttributedString 的 UILabel 空白区域的彩色背景

ios - Split View Controller 更新 TableView

iphone - UITextView 类似 iPhone 笔记应用程序

html - 使用 Swift 在 iOS 上将带有 HTML 标记的描述转换为 NSAttributedString 时如何使用旧金山字体