拆分字符串会截断 UILabel 中的单词

Splitting a string truncates the word in UILabel

我尝试使用 UIImageUILabel

设置自定义按钮

设置约束后,我开始测试此按钮并注意到奇怪的行为

UILabelUIButton 代码中:

private var title: UILabel = {
    var label = UILabel()
    label.translatesAutoresizingMaskIntoConstraints = false

    label.font = UIFont.boldSystemFont(ofSize: 14)
    label.numberOfLines = 0
    label.adjustsFontSizeToFitWidth = true
    label.minimumScaleFactor = 0.5

    return label
}()

例如,当我设置标题 "Hfpdktxtybz" 时,UILabel 效果惊人!

一字占一行:

但是如果我尝试设置标题,例如 "Развлечения"UILabel 会截断单词。

一个字分两行:

为什么英语标签工作正确,但俄语截断了这个词?如何解决? 字数相同

问题是,正如评论中所说,字符不一定具有相同的宽度。

  • lllll
  • AAAAA
  • aaaaa

上面的例子清楚地表明,尽管字符数相同,但字符的宽度并不相同。 所以 Autolayout 计算 UILabel 的实际宽度,它只有一个选项来满足您的约束。也就是分成2行。

如果您不希望发生这种情况,请考虑更改 UILabel 优先级 numberOfLines

如果你使用故事板





如果您以编程方式使用 swift。

label.numberOfLines = 2