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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值