ios NSMutableAttributedString 详解 显示不同的字体和颜色的字符串


 1 NSMutableAttributedString *mutableString = [[NSMutableAttributedString alloc]initWithString:totalFee];
 2     [mutableString addAttribute:NSFontAttributeName
 3                           value:[UIFont systemFontOfSize:21.0]
 4                           range:NSMakeRange(3, totalFee.length - 3)];//设置字体
 5     [mutableString addAttribute:NSForegroundColorAttributeName
 6                           value:[UIColor redColor]
 7                           range:NSMakeRange(3, totalFee.length - 3)];//设置颜色
 8     [mutableString addAttribute:NSUnderlineStyleAttributeName
 9                           value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]
10                           range:NSMakeRange(0, totalFee.length)];//添加下划线
11     sumLabel.attributedText = mutableString;

 

NSAttributedString的初始化方法有:
  -initWithString:用String初始化,并没有Attributed信息。
  -initWithAttributedString:用AttributedString去初始化。
  -initWithString:Attributed:用string及attribute的dictionary来初始化。

具体AttributtedString属性的键值对如下:
1、NSString *const NSFontAttributeName;//值为UIFont,设置字体,默认值为12-point Helvetica(Neue) 。
下面这段代码可以查看ios中可用的字体,具体那些字体长什么样,可以查看字体册工具。

1 NSArray *familyArray = [UIFont familyNames];
2 for (id family in familyArray) {
3     printf(“%s\n”,[family cStringUsingEncoding:NSUTF8StringEncoding]);
4     NSArray *fontArray = [UIFont fontNamesForFamilyName:family];
5     for (id font in fontArray) {
6         printf(”   %s\n”,[font cStringUsingEncoding:NSUTF8StringEncoding]);
7     }
8 }

2、NSString *const NSParagraphStyleAttributeName;//值为NSParagraphStyle,设置段落属性,默认值为[NSParagraphStyle defaultParagraphStyle]返回的值。
NSMutableParagraphStyle与NSParagraphStyle包括以下属性:
  alignment //对齐方式
  firstLineHeadIndent //首行缩进
  headIndent //缩进
  tailIndent  //尾部缩进
  lineBreakMode  //断行方式
  maximumLineHeight  //最大行高
  minimumLineHeight  //最低行高
  lineSpacing  //行距
  paragraphSpacing  //段距
  paragraphSpacingBefore  //段首空间
  baseWritingDirection  //句子方向
  lineHeightMultiple  //可变行高,乘因数。
  hyphenationFactor //连字符属性
3、NSString *const NSForegroundColorAttributeName;//值为UIColor,字体颜色,默认为黑色。
4、NSString *const NSBackgroundColorAttributeName;//值为UIColor,字体背景色,默认没有。
5、NSString *const NSLigatureAttributeName;//值为整型NSNumber,连字属性,一般中文用不到,在英文中可能出现相邻字母连笔的情况。0为不连笔;1为默认连笔,也是默认值;2在ios 上不支持。
6、NSString *const NSKernAttributeName;//值为浮点数NSNumber,字距属性,默认值为0。
7、NSString *const NSStrikethroughStyleAttributeName;//值为整型NSNumber,可取值为
enum {
  NSUnderlineStyleNone = 0×00,
  NSUnderlineStyleSingle = 0×01,
};设置删除线。

8、NSString *const NSUnderlineStyleAttributeName;//同上。设置下划线。
9、NSString *const NSStrokeColorAttributeName;//值为UIColor,默认值为nil,设置的属性同ForegroundColor。
10、NSString *const NSStrokeWidthAttributeName;//值为浮点数NSNumber。设置比画的粗细。
11、NSString *const NSShadowAttributeName;//值为NSShadow,设置比画的阴影,默认值为nil。
12、NSString *const NSVerticalGlyphFormAttributeName;//值为整型NSNumber,0为水平排版的字,1为垂直排版的字。

 

posted on 2015-09-07 11:02  codemaker313  阅读(5547)  评论(0编辑  收藏  举报

导航