见下文:

// 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 eh html文本,或使用textAlignment属性。

问题是,证明文本的合理性会破坏字母间距(实际上,它增加了每个单词的跟踪/字距,而不是仅仅增加了它们之间的间距)。

看:

我希望看到一个不是黑客的解决方案,因为我已经设计了一些自己的黑客,但是后来我陷入了其他问题的太多可能性。

我想念一些简单的东西吗?我已经遍历了所有UI选项,并且从代码示例中可以看到,我什至尝试更改Kern,该Kern确实会发生变化,但是只会按比例变化(即,它仍然会增加)。

最佳答案

您是否尝试添加NSParagraphStyle为1的hyphenationFactor属性?

这样可以保留字距和字距,但是当单词需要换到下一行时会增加连字符。

关于ios - 在iOS中对齐文本(Swift或Objective-C),而不会中断跟踪/字距调整/字母间距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30300323/

10-13 03:48