如题,有时候我们会有一种需求,在一个Label上面展示不同的字体,比如这样“欢迎汪小喵加入简书”。中间的汪小喵就是加粗斜体的,要求在一个Label里面显示哦。(每段字长度不固定哦!)
当然可以写三个Label排在一起,但是写三个会很累的啊,我这个人又这么懒。
所以,这时候 NSAttributedString 就派上用场了。
NSAttributedString 还有个兄弟 NSMutableAttributedString,
然后这个兄弟还代了个方法 appendAttributedString:
然后就厉害了,可以开始搞事情了。
NSMutableAttributedString*welcome = [[NSMutableAttributedString alloc]initWithString:@""attributes:@{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName:[UIFont systemFontOfSize:20]}];
先创建一个可变的AttributedString,然后后面的字一个个的创建不可变的AttributedString,像这样:
NSAttributedString*name = [[NSAttributedString alloc]initWithString:@"汪小喵"attributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont fontWithName:@"你要的特殊字体的名称" size:22]}];
接下来做字符串的拼接:[welcome appendAttributedString:name];
最后就是把拼接好的字符串给Label赋值了:[label setAttributedText:name];然后就大功告成了,快去试试吧~
注意:如果你知道这个字符串中具体哪个位置,不要这样傻傻的用上面的方法!
NSMutableAttributedString 里面带有range的很多的,看一下就会了~