[英]Truncate UILabel text before 5 character of string
是否可以根據屏幕大小和不同的設備方向在自動布局中截斷字符串的 5 個字符之前的 UILabel 文本。
測試測試測試測試測試測試...*1234
我知道UILabel
有幾種lineBreakMode
可能,例如.byTruncatingTail, .byTruncatingMiddle etc.
但對我的情況沒有任何作用。 任何建議將不勝感激。
感謝上面的每一次回答和評論!
所以最后我能夠完成它,這在iPhone
和iPad
所有設備上都非常有效, landscape
和portrait
模式也可以在 iPad 中使用split mode
!
所以我想在這里分享我的實現:
第一步:創建一個 TitleView.xib 文件。
Step2:取兩個標簽的Name Label
和Number 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.