簡體   English   中英

在字符串的 5 個字符之前截斷 UILabel 文本

[英]Truncate UILabel text before 5 character of string

是否可以根據屏幕大小和不同的設備方向在自動布局中截斷字符串的 5 個字符之前的 UILabel 文本。

測試測試測試測試測試測試...*1234

我知道UILabel有幾種lineBreakMode可能,例如.byTruncatingTail, .byTruncatingMiddle etc.但對我的情況沒有任何作用。 任何建議將不勝感激。

感謝上面的每一次回答和評論!

所以最后我能夠完成它,這在iPhoneiPad所有設備上都非常有效, landscapeportrait模式也可以在 iPad 中使用split mode

所以我想在這里分享我的實現:

第一步:創建一個 TitleView.xib 文件。

Step2:取兩個標簽的Name LabelNumber Label

步驟 3:給定以下兩個標簽的約束:

  • 名稱標簽約束:

在此處輸入圖片說明

  • 名稱標簽換行符:截尾:

在此處輸入圖片說明

  • 數字標簽約束:

在此處輸入圖片說明

Step4:然后在viewDidLoad方法中加載xib:

override func viewDidLoad() {
        super.viewDidLoad()
        let titleView = Bundle.main.loadNibNamed("TitleView", owner: self, options: nil)?[0] as! TitleView
        self.navigationItem.titleView = titleView
    } 

通過處理字符串索引,您可以非常優雅地完成您的要求。 如果您計划在代碼中的幾個地方執行此操作,請考慮在String上創建extension ,以使其更易於重用。 還可以考慮使用省略號 ( ) 而不是三個句點。

extension String {

    func truncated(after count: Int) -> String {
        let truncateAfter = index(startIndex, offsetBy: count)
        guard endIndex > truncateAfter else { return self }
        return String(self[startIndex..<truncateAfter]) + "…"
    }
}

自己試試

暫無
暫無

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

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