我使用以下属性
创建属性文本func attributedString(font: UIFont, contentColor: UIColor, alignment: NSTextAlignment) -> NSAttributedString {
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 0.6
paragraphStyle.lineHeightMultiple = 0.8
paragraphStyle.alignment = alignment
paragraphStyle.lineBreakMode = .byWordWrapping
let lineSpacingAttribute: [NSAttributedStringKey: Any] = [NSAttributedStringKey.paragraphStyle: paragraphStyle, NSAttributedStringKey.font: font, NSAttributedStringKey.foregroundColor: contentColor]
let attributedString = NSAttributedString(string: self, attributes: lineSpacingAttribute)
return attributedString
}
我在自定义UILabel
内的tableViewCell
上显示此文字。但是,它将一个单词切成两个单词(剪切一个单词的最后一个字母并在下一行显示)。我已将numberOfLines
设置为零,并将preferredMaxLayoutWidth
设置为标签。我使用自定义字体。
此问题仅在小屏幕,iPhone SE和iPhone 5S模拟器上发生。但是,在其他模拟器上它正确显示。你能帮我弄清楚这有什么问题吗?
谢谢!
答案 0 :(得分:0)
来自 Apple doc:
var preferredMaxLayoutWidth:CGFloat
当应用布局约束时,此属性会影响标签的大小。在布局期间,如果文本超出此属性指定的宽度,则附加文本将流向一个或多个新行,从而增加标签的高度。
根据您的文字,您可以将 adjustsFontSizeToFitWidth 属性与 minimumScaleFactor 属性
一起使用