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()