swift 彩色文本以及字符串切割

1.彩色文本

let atrString = NSMutableAttributedString(string:s)
let range = NSMakeRange(0, s.length)
atrString.addAttribute(NSForegroundColorAttributeName, value: UIColor.grayColor(), range: range)

2.切割分行

let nsName = s as NSString
name = nsName.substringWithRange(NSMakeRange(0, 4)) + "\n"
                    + nsName.substringWithRange(NSMakeRange(4, nsName.length - 4))
//注意NSMakeRange第二個參數是長度,不是尾下標

3.自然分行
最近一直在想字符串的切割問題,如果我想要判斷字符串一行能不能放的下,可以用上篇博客的內容獲取寬度,可是就算是知道大於預算寬度,又如何有效分割呢?
找了很久,也沒有找到類似按照文本物理寬度切割字符串的方法。如果要實現這種功能,只能不斷往後遍歷整個字符串的子字符串,在n個字符小於預算寬度,而n+1字符大於預算寬度的情況下,加換行符。
除此之外,還有一種方法,就是使用UILabel
UILabel有兩個很重要的屬性:

nameLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping //分割方式
nameLabel.numberOfLines = 2    //行數
//代碼如下
let nameLabel = UILabel(frame:CGRectMake(15,0,self.view.bounds.width - w - 60, 40))
nameLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
nameLabel.numberOfLines = 2
nameLabel.textAlignment = .Left
nameLabel.text = mf.name
nameLabel.font = UIFont.systemFontOfSize(10)   //文字大小
nameLabel.textColor = UIColor.blackColor()
發佈了38 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章