如何截断UILabel以显示' ...'在字符串

时间:2018-03-13 15:29:31

标签: ios swift uilabel

我有UILabel()我试图截断。

    let nameLabel: UILabel = {
        let label = UILabel()
        label.textColor = .black
        label.translatesAutoresizingMaskIntoConstraints = false
        label.font = UIFont.systemFont(ofSize: 11)
        label.numberOfLines = 0
        //label.lineBreakMode = .byTruncatingTail
        //label.adjustsFontSizeToFitWidth = false
        label.textAlignment = .center
        label.sizeToFit()

        return label
    }()

这是我的约束:

    nameLabel.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
    nameLabel.widthAnchor.constraint(equalTo: self.widthAnchor, constant: -10).isActive = true
    nameLabel.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 8).isActive = true

我遇到的问题是实际字符串被截断但不是将字符串'Johnson Rodriguez'截断为' 'Johnson Rod...''它会在空格后裁剪掉任何内容,导致标签显示'Johnson'

这些是我尝试过的东西:

    label.lineBreakMode = .byTruncatingTail 
    label.sizeToFit()
    label.preferredMaxLayoutWidth = 70

这是我见过其他人使用但由于某种原因我不能让它显示...而不是在第一个空格处截断字符串。

1 个答案:

答案 0 :(得分:3)

numberOfLines设置为1可以帮到你。

来自文档:

  

此属性控制使用的最大行数,以便将标签的文本放入其边界矩形中。此属性的默认值为1.要删除任何最大限​​制,并根据需要使用尽可能多的行,请将此属性的值设置为0.