Attributed String学习笔记

来源:互联网 发布:java cms系统开源框架 编辑:程序博客网 时间:2024/06/05 21:38
在实习中要实现下图中NavigationBar上的效果,经过考虑后认为使用NSAttributedString最为合适


根据官方文档介绍,Attributed string objects可以拥有一些字符串的属性(如字体、间距等)并将其选择性的应用到相关联的字符串上。比如图中的字符串就是通过取出换行符前后两部分的NSRange,再分别应用不同fontsize实现的。

NSAttributedString也有对应的NSMutableAttributedString版本用以需要改变的字符串,两者与CFAttributedString和CFMutableAttributedString关系为toll-free。

需要注意的是NSAttributedString并不是NSString的子类,而是NSAttribtedString包含一个NSString object并向其赋予一些attributes,这些attributes由NSDictionary存储。也因为如此,NSAttributedString不能直接和NSString做等于比较判断。此外NSAttributedString也实现了NSCopy和NSMutableCoping协议,因此可以很方便的在两种类型之间进行转换。

Attributed String的基本使用

创建方式:
1.initWithString:或initWithString:Attributeds:或initWithAttributedString:方法
例如:
NSFont *font = [NSFont fontWithName:@"Palatino-Roman" size:14.0];NSDictionary *attrsDictionary =
        [NSDictionary dictionaryWithObject:font                                    forKey:NSFontAttributeName];
NSAttributedString *attrString =    [[NSAttributedString alloc] initWithString:@"strigil"
            attributes:attrsDictionary];

2.通过RTF创建(Attributes从富文本得到)
3.通过HTML创建(Attributes从HTML得到)

此外,AttributedString也支持获取当前字符串上的属性及其范围,也可以再进一步修改。

附:NSAttributedString所支持的标准属性

0 0
原创粉丝点击