簡體   English   中英

在iOS(Swift或Objective-C)中對齊文本而不會破壞跟蹤/字距調整/字母間距

[英]Justify text in iOS (Swift or Objective-C) without breaking tracking/kerning/letter spacing

見下文:

// Description (HTML string):
var attrStr = NSMutableAttributedString(
    data: formatted.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,
    options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
    documentAttributes: nil,
    error: nil)

var paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = NSTextAlignment.Justified
attrStr?.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, attrStr!.length))
attrStr?.addAttribute(NSKernAttributeName, value: -0.1, range: NSMakeRange(0, attrStr!.length))
descLabel.attributedText = attrStr
descLabel.sizeToFit()

到目前為止,我試圖證明文本的合理性,導致了同樣的行為。 我已嘗試通過內聯樣式的CSS int hh html文本或使用textAlignment屬性。

問題是,證明文本的合理性會打破字母間距(實際上它會增加每個單詞的跟蹤/字距,而不是僅增加其間的空間)。

看到: 在此輸入圖像描述

我想看到一個不是黑客的解決方案,因為我已經設計了一些我自己的黑客,但后來我陷入了其他問題的太多可能性。

我錯過了一些簡單的東西? 我已經瀏覽了所有UI選項,並且在我的代碼示例中看到,我甚至嘗試更改Kern,它確實發生了變化但只是按比例變化(即它仍然增加)。

您是否嘗試使用hyphenationFactor為1添加NSParagraphStyle屬性?

這將保持您的字距和單詞間距,但是當單詞需要突破到下一行時會添加連字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM