Подтвердить что ты не робот

Обоснованный текст NSAttributedString (без растягивания слов)

Я использую оправданный текст для своей NSAttributedString в UITextView:

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

Проблема заключается в том, что она растягивает несколько слов, чтобы добиться выравнивания, а не просто растягивать пробелы между словами. Я нахожу это очень отвлекающим и знаю, что есть способ сделать так, чтобы слова не растягивались, а только интервалы. Ниже приведен снимок экрана из моего приложения, а затем один из приложений с некоторыми из тех же функций, которые также используют оправданный текст и тот же самый шрифт.

enter image description here

enter image description here

Как достичь такого же эффекта?

Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

Существует неприятный трюк, который вы можете использовать.

Вы можете использовать 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