下面是Swift中的代码,我使用了两行UILabel,并将adjustsFontSizeToFitWidth
设置为true
,可以正确处理从左到右的文本。我已经使用EasyPeasy库来设置布局约束。
let contactLabel = UILabel()
contactLabel.text = "Tell us how we can contact you".localized()
contactView.addSubview(contactLabel)
contactLabel.easy.layout([Leading(), Trailing(), Top(20), Height(60)])
contactLabel.numberOfLines = 2
contactLabel.lineBreakMode = .byTruncatingHead
contactLabel.adjustsFontSizeToFitWidth = true
当我将语言更改为阿拉伯语时,文本将正确地分成两行,但以LTR模式而不是RTL显示。应该如何管理多行标签以显示阿拉伯文字?
我也在iOS 11上检查了此行为,并且该行为正在起作用,也许在iOS 12中有一个窍门。
答案 0 :(得分:2)
步骤1-设置顶部,顶部,尾部和高度限制,并将高度关系更改为大于或等于
第2步-label.numberOfLines = 0
第3步-label.sizeToFit()
第4步-label.lineBreakMode = .byTruncatingTail
答案 1 :(得分:1)
尽管在大多数情况下,将标签对齐方式设置为“自然”即可,但iOS有时会出错。如果您没有主意,可以随时根据应用程序当前的布局方向在代码中手动进行设置。
if UIApplication.shared.userInterfaceLayoutDirection == .leftToRight {
resultLabel.textAlignment = .left
} else {
resultLabel.textAlignment = .right
}