簡體   English   中英

如何截斷UILabel以在字符串末尾顯示“…”

[英]How to truncate UILabel to show '…' at the end of the string

我有一個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

這是我看到的其他人使用的東西,但是由於某種原因,我無法讓它顯示...而不是在第一個空格處截斷字符串。

numberOfLines設置為1應該可以解決問題。

從文檔:

此屬性控制為了使標簽文本適合其邊界矩形而使用的最大行數。 此屬性的默認值為1。要刪除任何最大限​​制,並根據需要使用任意多的行,請將此屬性的值設置為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM