在字符串的5个字符之前截断UILabel文本

时间:2018-08-16 09:47:31

标签: ios swift string uilabel swift4.2

是否可以根据屏幕尺寸和不同的设备方向ex,在自动布局中截断UILabel文本前5个字符的字符串。

  

测试测试测试测试测试测试... * 1234

我知道lineBreakMode可能有多个UILabel.byTruncatingTail, .byTruncatingMiddle etc.一样,但没有任何适合我的情况。任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

欣赏一下上面的答案和评论!

所以最后我能够完成它,它在iPhoneiPad模式下的landscapeportrait的所有设备中也都很好用,split mode在iPad中也是如此!

所以我想在这里分享我的实现:

第1步::创建TitleView.xib文件。

第二步::使用两个标签的Name LabelNumber Label

第3步:两个标签都具有以下限制:

  • 名称标签约束:

enter image description here

  • 名称标签换行符:截尾:

enter image description here

  • 数字标签约束:

enter image description here

第四步: 然后以viewDidLoad方法加载xib:

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

答案 1 :(得分:0)

您可以通过处理字符串索引来优雅地完成您要问的事情。如果您打算在代码中的几个位置执行此操作,请考虑在<cfset currentURL = CGI.SERVER_NAME> <cfset domainParts = listLen(currentURL, ".")> <cfset domain = gettoken(currentURL,domainParts-1,".") & "." & gettoken(currentURL,domainParts,".") > 上创建一个extension,以使其更易于重用。还可以考虑使用省略号(String)而不是三个句点。

Try it yourself