iOS NSAttributedString

字符属性可以应用于 attributed string 的文本中。

 

 NSString *const NSFontAttributeName;(字体)

 

 NSString *const NSParagraphStyleAttributeName;(段落)

 

 NSString *const NSForegroundColorAttributeName;(字体颜色)

 

 NSString *const NSBackgroundColorAttributeName;(字体背景色)

 

 NSString *const NSLigatureAttributeName;(连字符)

 

 NSString *const NSKernAttributeName;(字间距)

 

 NSString *const NSStrikethroughStyleAttributeName;(删除线)

 

 NSString *const NSUnderlineStyleAttributeName;(下划线)

 

 NSString *const NSStrokeColorAttributeName;(边线颜色)

 

 NSString *const NSStrokeWidthAttributeName;(边线宽度)

 

 NSString *const NSShadowAttributeName;(阴影)(横竖排版)

 

 NSString *const NSVerticalGlyphFormAttributeName;

 

 常量

 

 1> NSFontAttributeName(字体)

 

 该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。

 

 2> NSParagraphStyleAttributeName(段落)

 

 该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性,则默认为 NSParagraphStyle 的defaultParagraphStyle 方法返回的默认段落属性。

 

 3> NSForegroundColorAttributeName(字体颜色)

 

 该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色。

 

 4> NSBackgroundColorAttributeName(字体背景色)

 

 该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。

 

 5> NSLigatureAttributeName(连字符)

 

 该属性所对应的值是一个 NSNumber 对象(整数)。连体字符是指某些连在一起的字符,它们采用单个的图元符号。0 表示没有连体字符。1 表示使用默认的连体字符。2表示使用所有连体符号。默认值为 1(注意,iOS 不支持值为 2)。

 

 6> NSKernAttributeName(字间距)

 

 该属性所对应的值是一个 NSNumber 对象(整数)。字母紧排指定了用于调整字距的像素点数。字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0。

 

 7> NSStrikethroughStyleAttributeName(删除线)

 

 该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上删除线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。

 

 8> NSUnderlineStyleAttributeName(下划线)

 

 该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上下划线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。

 

 9> NSStrokeColorAttributeName(边线颜色)

 

 该属性所对应的值是一个 UIColor 对象。如果该属性不指定(默认),则等同于 NSForegroundColorAttributeName。否则,指定为删除线或下划线颜色。更多细节见“Drawing attributedstrings that are both filled and stroked”。

 

 10> NSStrokeWidthAttributeName(边线宽度)

 

 该属性所对应的值是一个 NSNumber 对象(小数)。该值改变描边宽度(相对于字体size 的百分比)。默认为 0,即不改变。正数只改变描边宽度。负数同时改变文字的描边和填充宽度。例如,对于常见的空心字,这个值通常为3.0。

 

 11> NSShadowAttributeName(阴影)

 

 该属性所对应的值是一个 NSShadow 对象。默认为 nil。

 

 12> NSVerticalGlyphFormAttributeName(横竖排版)

 

 该属性所对应的值是一个 NSNumber 对象(整数)。0 表示横排文本。1 表示竖排文本。在 iOS 中,总是使用横排文本,0 以外的值都未定义。

 

 

 

  • NSMutableParagraphStyle *ps = [[NSMutableParagraphStyle alloc] init];  
  •     [ps setAlignment:NSTextAlignmentCenter];  
  •     NSDictionary *attribs = @{NSFontAttributeName: [UIFont fontWithName:@"Microsoft Yahei" size:45],NSParagraphStyleAttributeName:ps};  
  •     NSMutableAttributedString *attributedText =[[NSMutableAttributedString alloc] initWithString:super.text  
  •                                            attributes:attribs];  
  •     super.attributedText = attributedText;  
UITextView

*

lab

=

[

LocalTexts

objectAtIndex

:

j

];

NSMutableParagraphStyle

*

paragraphStyle

=

[[

NSMutableParagraphStyle

alloc

]

init

];

paragraphStyle

.

lineHeightMultiple

=

50.0f

;

paragraphStyle

.

maximumLineHeight

=

50.0f

;

paragraphStyle

.

minimumLineHeight

=

50.0f

;

NSString

*

string

=

lab

.

text

;

NSDictionary

*

ats

=

@{

NSFontAttributeName

:

[

UIFont

fontWithName

:@

"DIN Medium"

size

:

16.0f

],

NSParagraphStyleAttributeName

:

paragraphStyle

,

};

lab

.

attributedText

=

[[

NSAttributedString

alloc

]

initWithString

:

string

attributes

:

ats

];//textview 设置行间距

NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];paragraph.alignment = NSTextAlignmentJustified;//设置对齐方式paragraph.lineBreakMode = NSLineBreakByWordWrapping;

NSAttributedString的初始化方法有

-initWithString:用String初始化,并没有Attributed信息。

-initWithAttributedString:用AttributedString去初始化。

-initWithString:Attributed:用string及attribute的dictionary来初始化。

具体AttributtedString属性的键值对如下:

NSString *const NSFontAttributeName;//值为UIFont,设置字体,默认值为12-point Helvetica(Neue) 。

下面这段代码可以查看ios中可用的字体,具体那些字体长什么样,可以查看字体册工具。

NSArray *familyArray = [UIFont familyNames];

for (id family in familyArray) {

printf(“%s\n”,[family cStringUsingEncoding:NSUTF8StringEncoding]);

NSArray *fontArray = [UIFont fontNamesForFamilyName:family];

for (id font in fontArray) {

printf(”   %s\n”,[font cStringUsingEncoding:NSUTF8StringEncoding]);

}

}

NSString *const NSParagraphStyleAttributeName;//值为NSParagraphStyle,设置段落属性,默认值为[NSParagraphStyle defaultParagraphStyle]返回的值。

NSMutableParagraphStyle与NSParagraphStyle包括一下属性

  alignment //对齐方式

  firstLineHeadIndent //首行缩进

  headIndent //缩进

  tailIndent  //尾部缩进

  lineBreakMode  //断行方式

  maximumLineHeight  //最大行高

  minimumLineHeight  //最低行高

  lineSpacing  //行距

  paragraphSpacing  //段距

  paragraphSpacingBefore  //段首空间

  baseWritingDirection  //句子方向

  lineHeightMultiple  //可变行高,乘因数。

  hyphenationFactor //连字符属性

NSString *const NSForegroundColorAttributeName;//值为UIColor,字体颜色,默认为黑色。

NSString *const NSBackgroundColorAttributeName;//值为UIColor,字体背景色,默认没有。

NSString *const NSLigatureAttributeName;//值为整型NSNumber,连字属性,一般中文用不到,在英文中可能出现相邻字母连笔的情况。0为不连笔;1为默认连笔,也是默认值;2在ios 上不支持。

NSString *const NSKernAttributeName;//值为浮点数NSNumber,字距属性,默认值为0。

NSString *const NSStrikethroughStyleAttributeName;//值为整型NSNumber,可取值为

enum {

NSUnderlineStyleNone = 0×00,

NSUnderlineStyleSingle = 0×01,

};设置删除线。

NSString *const NSUnderlineStyleAttributeName;//同上。设置下划线。

NSString *const NSStrokeColorAttributeName;//值为UIColor,默认值为nil,设置的属性同ForegroundColor。

NSString *const NSStrokeWidthAttributeName;//值为浮点数NSNumber。设置比画的粗细。

NSString *const NSShadowAttributeName;//值为NSShadow,设置比画的阴影,默认值为nil。

NSString *const NSVerticalGlyphFormAttributeName;//值为整型NSNumber,0为水平排版的字,1为垂直排版的字。

posted @ 2019-02-13 17:31  ios_福  阅读(560)  评论(0编辑  收藏  举报